黑马程序员技术交流社区

标题: 关于JAVA学习中的一个问题 [打印本页]

作者: 亲亲    时间: 2014-5-22 21:38
标题: 关于JAVA学习中的一个问题
大家好,我是个零基础学习JAVA语言的,有个问题想请教一下大家。
下面程序执行的结果是?( )
boolean b=true;
if(b=false) //( ) 内的值为 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

这个题我的答案是B,但是是错的,有人帮忙解释下吗?
作者: 谜燕    时间: 2014-5-22 21:46
本帖最后由 谜燕 于 2014-5-22 21:48 编辑

if(b=false)是赋值语句,因此现在的b的值是false,if--else if--else条件判断语句只执行为true的语句,因此打印c。如果是if(b==false)那你选择的就对了,这里一定要区分==(比较运算符)和=(赋值运算符)。

作者: Sevenette    时间: 2014-5-22 22:00
本帖最后由 Sevenette 于 2014-5-22 22:02 编辑

  1. boolean b=true;
  2. if(b=false) //1. b=false 将false赋值给b,没有真假值,继续向下执行
  3. {
  4.         System.out.println("a");
  5. }
  6. else if(b)//2. b为假,不满足,向下执行
  7. {
  8.         System.out.println(b);        
  9. }
  10. else if(!b)//3. !b 为真,满足 输出c
  11. {
  12.         System.out.println("c");
  13. }
  14. else
  15.         System.out.println("d");
复制代码

过程就是上面这样的~~


作者: 黑马粉、峥    时间: 2014-5-22 23:14
运行结果为 C ,当b 运行到   if(b=false) 输出为 fals 继续往下运行,运行到   else if(b)时()里面默认的值为false,所以往下走,运行到else if(!b)时 输出 ture,所以结果为 c
作者: 飘渺≮★耘    时间: 2014-5-23 11:29
在第二行,if(b=false)中,这里b被赋值为false,所以应选c
作者: gentleman    时间: 2014-5-23 14:20
b在运行时被赋值false,所以选c
作者: ★魔_➩τ咒    时间: 2014-5-24 05:42
答案是C 你应该好好看下IF ELSE那的只是点,很简单的!




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