黑马程序员技术交流社区

标题: 一个if小题目 [打印本页]

作者: lingxia125    时间: 2015-7-27 11:49
标题: 一个if小题目
本帖最后由 lingxia125 于 2015-7-27 12:11 编辑
  1. boolean b = true;

  2. if(b=false)  
  3.         System.out.println("a");
  4. else if(b)
  5.         System.out.println("b");
  6. else if(!b)
  7.         System.out.println("c");
  8. else
  9.         System.out.println("d");
复制代码

这个结果为什么是c?能给我详细解释一下吗
作者: 孙晓磊    时间: 2015-7-27 12:01
第一个if,b=false少了个等号,就是赋值语句,也就是b被赋为了false也就是if(false)所以第一个条件不成立
第二个if,就是if(false),同样不成立
第三个if,if(!false),!非,非false就是true了,第三个if走出去了,就自然不看最后一个else了
作者: 3174918418    时间: 2015-7-27 12:02
本帖最后由 3174918418 于 2015-7-27 12:08 编辑

boolean b = true;

if(b=false)  //if (条件表达式) ..如果条件表达式为true,就执行语句体;否则不执行。
因為这行是賦值 (PS:  = 與 == 不同之處要注意)
所以到else if(!b)这行為 true
所以是C

作者: lingxia125    时间: 2015-7-27 12:11
恩恩,明白了,没注意到这是赋值语句,thank you !
作者: code_linux    时间: 2015-8-17 00:13
比较相等搞成赋值了。。。
作者: wang949055945    时间: 2015-8-17 00:38
楼上的都回答的很正确
作者: 徐雪涛xuxuetao    时间: 2015-8-26 13:08
你还没弄懂赋值和相等的符号
作者: 水佳伟    时间: 2015-8-26 13:43
好,楼主v587,长知识了
作者: javazhang    时间: 2015-8-26 13:59
学无止境啊。。。。。。。。。。




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