java中if(i=j)语句

来源:互联网 发布:2016国外网络在做什么 编辑:程序博客网 时间:2024/05/16 15:38

int i=2,j=2;

if(i=j)

.....

在C/C++中,这个是可以编译通过、并且可以运行的。

而在java中,这个在编译期就会报错。

本人觉得原因可能是这样:这个相当于将2赋值给i,然后if语句变成if(2),而在java中if语句中只有true,false两种判断逻辑的值,因此,在编译时会报错。而在C/C++中逻辑值可以是true,false,也可以是0,或非0值,因此在C/C++中,这个是可以编译通过、并且可以运行的。


如果是这样的情况:

boolean b = true , c = false;

if(b=c)

.....

编译会通过的,因为,这就相当于将false赋值给b,if语句变成if(false),表示永远不会进入if语句中执行。

而如果if(c=b),这就相当于将true赋值给c,if语句变成if(true),表示一定会进入if语句中执行。