日期:2014-05-20  浏览次数:20807 次

给大家做一道题目
代码如下:
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"); 

判断 用 == 一个等号,是赋值