给大家做一道题目
代码如下:
boolean flag = false;
if (flag = true) {
System.out.println("true");
} else {
System.out.println("false");
}
结果是true,我想问的是,为什么(falg = true)返回true,flag = false返回false,还有就是比如申明int i,然后打印,即System.out.println(a = 2)结果是2,这些有什么理论依据吗?今天做SCJP时碰到的比较新鲜的东西,希望大家解惑
------解决方案--------------------
if (flag = true)
这段代码等价于
flag = true; // 赋值
if (flag) // 然后判断flag是否为真
判断,用 == ,一个等号,是赋值。
然后,判断真假,建议用
if (flag)
if (!flag)
------解决方案--------------------boolean flag = false;
if (flag = true) {
System.out.println("true");
} else {
System.out.println("false");
}
其中
flag = true; // 赋值
if (flag) // 然后判断flag是否为真,此时的flag为真
执行
System.out.println("true");
判断 用 == 一个等号,是赋值