关于Boolean==Boolean和Boolean=Boolean的启示

昨晚做java面试题,一道原题是这样的  (来自——JAVA最最最~~基本的面试题_慕课手记 http://www.imooc.com/article/13754 )

6.  给出以下代码,请问该程序的运行结果是什么?
class Example{
public static void main(String args[]){
boolean flag=false;
if(flag=true){
System.out.println(“true”);
}
else{
System.out.println(“false”);
}
}
}
A   代码编译失败,if语句错误。
B   打印输出true。
C   打印输出false。
D   无内容输出。

当时认为if语句里面应该是不能赋值的,所以果断选了A。。

然而正确结果是B,即输出true,因为在这里虽然声明flag变量的时候初始化为false,但是在if判断时用 “=” 赋值符号改变为字面量true了。。if(true){}

另:如果if判断用的是“==” 逻辑相等,则很明显比较结果为false,输出 “false”。

提到==,还有一个equals,可以参见以下链接进行理解~



关于if(Boolean=Boolean)的问题。。-CSDN论坛 

【Java】双等号和equals的区别 - 青春若是一场天真的固执,你则是我最在乎的坚持。 - CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_28421553/article/details/75219351