boolean flag = false 与 boolean flag = true对下列程序有何不同影响?

执行下面代码片段得到什么结果: ( )
1. boolean flag = false;
2. if (flag = true) {
3. System.out.println("true");
4. } else {
5. System.out.println("false");
6. }
结果是:
A. true 打印到标准输出
B. false打印到标准输出
C. 产生异常
D. 没有任何结果
E. 编译错误

第1个回答  2014-06-22
异常解决: if (flag == true),
flag的初始定义对下面的判断结果的准确性无影响追问

flag的初始定义对下面的判断结果的准确性无影响,
也就是说:
boolean flag = false or boolean flag = true
这题都选A么?

追答

这题选E,判断是用==双等号,=是赋值用的。

追问

如果除去 判断是用==双等号,=是赋值 这个错误,这题怎解?请解释一下

追答

那就很简单啦,假如flag初始化为false,则判断flag==true不成立,那么就是else成立,也就是输出false。相反的,flag初始化true,判断flag==true成立,输出true

追问

没看题目之前,我也是这样认为的,可是,我们老师给的答案是A

追答

测试了一下确实是A,我说下我的理解吧,if (flag = true)这句其实等同if ( (flag = true) ),也就是flag在这里先被再次赋值了,然后再判断结果。即
boolean flag = false;
flag = true ;
if (flag) {
System.out.println("true");
} else {
System.out.println("false");
}

本回答被提问者采纳
第2个回答  2014-06-22
纳尼
相似回答