A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lingxia125 中级黑马   /  2015-7-27 11:49  /  377 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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?能给我详细解释一下吗

8 个回复

倒序浏览
第一个if,b=false少了个等号,就是赋值语句,也就是b被赋为了false也就是if(false)所以第一个条件不成立
第二个if,就是if(false),同样不成立
第三个if,if(!false),!非,非false就是true了,第三个if走出去了,就自然不看最后一个else了
回复 使用道具 举报
本帖最后由 3174918418 于 2015-7-27 12:08 编辑

boolean b = true;

if(b=false)  //if (条件表达式) ..如果条件表达式为true,就执行语句体;否则不执行。
因為这行是賦值 (PS:  = 與 == 不同之處要注意)
所以到else if(!b)这行為 true
所以是C
回复 使用道具 举报
恩恩,明白了,没注意到这是赋值语句,thank you !
回复 使用道具 举报
比较相等搞成赋值了。。。
回复 使用道具 举报
楼上的都回答的很正确
回复 使用道具 举报
你还没弄懂赋值和相等的符号
回复 使用道具 举报
好,楼主v587,长知识了
回复 使用道具 举报
学无止境啊。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马