黑马程序员技术交流社区

标题: 下面程序执行的结果是为什么是C? [打印本页]

作者: 李放    时间: 2015-12-19 19:48
标题: 下面程序执行的结果是为什么是C?
1.   下面程序执行的结果是?(
booleanb=true;
if(b=false)   //false
{
    System.out.println("a");
}
elseif(b)     //false
{
    System.out.println("b");
}
elseif(!b)       //true
{
    System.out.println("c");
}
else
{
    System.out.println("d");
}
A.  a   
B.  b  
C.  c
D.  d


作者: 洋葱头头    时间: 2015-12-19 20:14
第一个if不是把b改成false了吗
作者: 我有一个邮箱了    时间: 2015-12-19 20:46
booleanb=true;
if(b=false)   //"="是将false赋值给b,此时b=false;
{
    System.out.println("a");
}
elseif(b)     //此时b还是false
{
    System.out.println("b");
}
elseif(!b)       //!b本来b=false;进行非运算后b=true;
{
    System.out.println("c");
}
else
{
    System.out.println("d");
}
所以会输出c;
作者: zhauibuzhai    时间: 2015-12-19 22:38
你自己都说出来了
作者: a54267490    时间: 2015-12-19 23:18
我当时也被这题给坑了
作者: 李放    时间: 2015-12-20 21:20
洋葱头头 发表于 2015-12-19 20:14
第一个if不是把b改成false了吗

这题治好了多年的眼瞎
作者: 愿爱无忧    时间: 2015-12-20 21:44
好水贴。
作者: 隔壁老猫    时间: 2015-12-21 00:22
这也能 氵 = =




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2