黑马程序员技术交流社区
标题: 求大神告诉我答案.... [打印本页]
作者: 潜力良驹 时间: 2015-7-29 22:03
标题: 求大神告诉我答案....
下面程序执行的结果是?(B)C Why?
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");
A. a
B. true
C. c
D. d
为什么是C啊....我知道if(b==false)这句不执行,不是应该执行else if(b)么? b不就是true了么...为什么是执行else if(!b) !b不就是false了吗?false了跟布尔条件不符合啊为什么还能执行?
作者: wudigod12 时间: 2015-7-29 22:04
b=false b是false
作者: 潜力良驹 时间: 2015-7-29 22:45
正确答案是C.....
作者: 潜力良驹 时间: 2015-7-29 22:46
为什么b是false...前面不是定义b是true吗?
作者: 嘉嘉 时间: 2015-7-29 23:05
if(b=false):为b重新附值false
作者: 逆光奔跑 时间: 2015-7-29 23:05
if(b=false),括号内b应经被赋值为false,所以答案是C
作者: boboyuwu 时间: 2015-7-29 23:37
不执行b变成了false了执行!b那个
作者: 潜力良驹 时间: 2015-7-30 20:44
太阴了....两个等号是判断语句 一个等号是赋值....现在才想到
作者: dadai5ai 时间: 2015-7-30 20:57
因为 if(b=false) 中的“b=false”是复制语句,不是判断语句,这时候b已经是false了
作者: 潜力良驹 时间: 2015-7-30 20:58
嗯 脑子笨 哎
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |