黑马程序员技术交流社区
标题: 帮帮分析下 [打印本页]
作者: 奋发吧小白 时间: 2014-9-11 16:55
标题: 帮帮分析下
给定java代码如下,编译运行,结果是( )
class Demo{
publicstatic void main(String[] args)
{
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");
}
}
我认为答案 :打印结果是b
但是运行结果却是c
if(b=false) 则跳过System.out.println("a");
然后去判断条件else if(b) 此时b = true 则执行System.out.println("b");
打印b
循环结束!
这样分析正确吗?
作者: hailong 时间: 2014-9-11 18:05
b=false中=是赋值运算,表示将false赋值给b,所以if(b)时b为false继续向下执行,!b为true,打印c
如果你将b=false改成b==false那么结果就是b了
作者: 尚志 时间: 2014-9-11 18:12
楼上正解,你用的是赋值运算……
作者: daoqin 时间: 2014-9-11 19:19
本帖最后由 daoqin 于 2014-9-11 19:20 编辑
建议这么写 if(false == b) 这样的话如果你少些一个等于号,程序会报错的!因为false是常量,不可改变的。这样就减少了漏写一个=的机率
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |