黑马程序员技术交流社区
标题:
请解析。。。
[打印本页]
作者:
李洋-
时间:
2013-12-12 21:26
标题:
请解析。。。
boolean b=true;
if(
b=false
)
{
System.out.println("a");
}
else if(b)
{
System.out.println(b);
}
else if(!b)
{
System.out.println("c");
}
else
{
System.out.println("d");
}
以上程序为什么输出的是C 而不是b呢?
作者:
ysunday
时间:
2013-12-12 21:35
if(b=false)这句将b的值改成了 false继续往下判断,!b就是true了,符合条件的只有打印c的那个判断了
作者:
松子
时间:
2013-12-12 22:47
因为变量b 定义在if条件句外面的,在整个if条件句里都能够使用。
boolean b=true;
if(b=false)
//false赋值给b,b的值就从初识的true就变成了false,所以括号里是false
{
System.out.println("a");
}
else if(b)
//因为b已经是false,所以这里也不执行
{
System.out.println(b);
}
else if(!b)
//b是false,那 !b 就是true,
所以输出结果是c
.
{
System.out.println("c");
}
else
{
System.out.println("d");
}
作者:
熊猫86
时间:
2013-12-12 23:05
第一句的if语句真的很容易看错,b=false是赋值语句,如果换成b==false这才是判断b的值是否为false,而b=false是将b的值由true改为false,因此!b是true,最后的结果输出为c。还有,因为if语句中( )要放判断语句或者是boolean型的值,而b本身就是boolean型的变量,因此,if(b=false) 在括号内用赋值语句是合法的。
作者:
jing迪
时间:
2013-12-13 00:12
第一句话是把true赋值给b
第二句话if里面却是把false赋值给b
然后b的值就是false !false就是true所以条件成立就是c了
作者:
Never__give_up
时间:
2013-12-13 22:48
这个考验的是赋值语句和关系运算符==之间的区别,b=false是给b从新赋值,所以
if(b=false)和esle if(b)
复制代码
的值都是false,因此不对,而!b为true,所以输出为c。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2