int&boolean——Java和C的一点小区别

Java和C的区别很多,不过估计这一点很多人都不知道。

今天面试时碰到这么道C语言题

求运行结果

	int x = -1;
	while(!x!=0){
		cout<<x<<endl;
		x=x*x;
	}
	cout<<"haha"<<i<<endl;

此题关键在于理解运算符优先顺序

while(!x!=0)

这句话的执行顺序:

!x

!=0

所以

!-1=false

false!=0

所以循环不会执行

这道题我做的时候还是对自己的答案有疑惑的,回来打开Eclipse想用Java测试一下

结果

居然报错了!!!!难道答案是编译错误???

又打开VS编了一遍C++

运行、、

噗。。。还好没错。。。

结论:

C语言中,非0就是true,0就是false,然而这个规则不适用于Java

Java的int不能自动转为boolean!想转?用if语句罗

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 06:23:10

int&boolean——Java和C的一点小区别的相关文章

C与C++在形参的一点小区别

先看一下下面的代码: int fun(a,b) int a; int b; { return 10; } void main(int argc, char ** argv) { fun(10); return; } 大家猜猜看它在VS小能通过编译吗? 哈哈,不啰嗦了,直接说结果,如果这段代码在一个.c文件里是可以通过编译的,在一个.cpp文件里是不能通过编译的. 很奇怪吧,想这应该是c与c++的一点小区别吧,最近在看nc源码,看到这种形参声明方式,感觉好神奇,还有就是它的船参个数比较神奇,只要实

tomcat 6和tomcat7的一点小区别

今天发现了一个很有意思的问题,以下这段代码在 tomcat6和tomcat7上跑的结果不一样.tomcat6正常,tomcat7不正常. <c:choose> <c:when test="${'1' eq obj[6] }">已注册</c:when> <c:otherwise>未注册</c:otherwise> </c:choose> 经过分析后找出了原因 ,原来 obj[6] 在数据库中存的是 char  取出来

angular js jquery中post请求的一点小区别

这也是最近遇到的坑,还是之前那个项目,现在要实现登录功能. 背景:注册功能之前已经跑通了.前端用的是jquery后台是springMVC.鉴于注册和登录有些接口功能是类似的(比如注册确保邮箱是没有注册过,而登录是确保注册过),于是后台还准备用注册的那套接口. 登录的接口get请求是没问题的,但是post却出了问题:后台收不到请求体里的内容. 后来发现是jquery和angular的post行为有些区别,于是我做了个实验. <!DOCTYPE html> <html lang="

配置hibernate.hbm.xml与配置hibernate.cfg.xml的头部一点小区别

配置hibernate.hbm.xml的头部是: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&g

java新手的第一个小东西,或许小东西都算不上=。 =

import java.util.ArrayList; import java.util.Scanner; /** * 系统类 * * @author Administrator * */ public class Systems { private Scanner input = new Scanner(System.in); private Database db = new Database(); //用户数据库 private ArrayList<Users> usersList =

新闻发布的一点小总结

经过一段时间的学习,完成了新闻发布的基础功能,进行一点小总结,方便日后回顾.下面是我的一点小总结,不足之处请勿见笑... 我们想要完成一个新闻发布,首先要使其能够成功发布,并且让它能够实现添加.删除.修改.查询.上传.下载等功能.我们还调用AJAX功能查看输出为XML.JSON格式的新闻内容.为完成以上功能,我们首先要进行jdk.tomcat.eclipse的安装和配置.1.各软件的安装和配置1.1.jdk的安装和配置: 1.1.1.下载jdk:下载地址:http://www.oracle.co

C++ 中有关const引用的一点小知识

在读<C++ Primer>时,发现之前对const的概念不是很清晰,只知道如何去使用,于是翻开const引用部分又阅读了一遍,发现有两点自己要注意的地方 1.const限定的对象不可以初始化非const引用 ex. 1 const int src = 512; 2 const int &ok_dest = src; //ok: 引用和初始化对象都是const 3 int &err_dest = src; //error : 引用为非const 原因很简单, src 是不可以被

一点小心得

项目中会遇到这样的逻辑处理:根据不同类型调用不同的方法,通常会用到if else等语句,感觉不太好: 1,应该面向接口编程 2,尽量避免使用if语句 实例:原来代码,接口Iservice的实现类有 ServiceA ,ServiceB,ServiceC public static void main(String[] args) { String type = "C"; Iservice service = null; if (type.equals("A")) {

程序开发的一点小总结

程序开发的一点小总结, 给要学习一门新语言的朋友一些帮助, :P 1.多项条件下的处理 第一种方法: 每个需要执行A函数的条件下都写一边A函数调用, 这种方式也是最中规中矩的写法, 代码相对臃肿, 如果A有任何变动, 就要修改多处, 这种代码块写多了, 容易漏掉 if(b==1) a() else if(b==2) else if(b==3) a() else a() 第二种写法: 在B条件筛选前, 创建一个临变量布尔c, 用来监控需要A函数需要的条件, 需要就为true, 不需要就不写(默认初