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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 渠嘉树 中级黑马   /  2014-7-5 18:59  /  1830 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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");

上面第一个条件是不成立的,然后转入if(b),这句应该怎么理解?是if(b==true)吗 ?
它的输出结果就是b。
if(!b)的意思是b=false吗?

如果写成if(b=false)有结果吗?如果有,结果是?
我改成了b=false,执行了结果是c,该怎么理解?我不知道怎么到这一步的{:3_54:}可以讲解的仔细点吗?





评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

7 个回复

倒序浏览
首先需要了解,
在if中,写了变量,但没有表达式,则默认判定变量是否为true,即:默认为变量==true,假如变量false那么就进入else。
然后需要了解:
! 为求反,其余的可以往首先上面套。

最后,判定时不能写成 变量=【true/false】 因为 =是赋值符号,必需写成 ==

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
OCTSJimmy 发表于 2014-7-5 19:13
首先需要了解,
在if中,写了变量,但没有表达式,则默认判定变量是否为true,即:默认为变量==true,假如 ...

我用myeclipse写的if(b=false)没有报错,为什么?还有运行结果的
回复 使用道具 举报
本帖最后由 OCTSJimmy 于 2014-7-5 19:22 编辑
渠嘉树 发表于 2014-7-5 19:17
我用myeclipse写的if(b=false)没有报错,为什么?还有运行结果的

其实:
if(b=false)
{
System.out.println(b);
}
else
{
System.out.println("else:" + b);
}

这个会输出:
"else:false"
如此,可了解?也即是说:
if(b=false)
做了这些操作:
1、赋值b为false
2、判定b==true
所以实际上这是等价于:
if((b=false)==false)的

回复 使用道具 举报
OCTSJimmy 发表于 2014-7-5 19:20
其实:
if(b=false)
{

恩恩  这样就明白了 嘿嘿 谢谢啦{:3_53:}
回复 使用道具 举报
渠嘉树 发表于 2014-7-5 19:25
恩恩  这样就明白了 嘿嘿 谢谢啦

不客气,一起研究,一起进步嘛。
回复 使用道具 举报
OCTSJimmy 发表于 2014-7-5 19:27
不客气,一起研究,一起进步嘛。

恩恩 嘿嘿
回复 使用道具 举报
if(b)意思就是 "如果b是true"或“如果b为真”;if(!b)意思是:“如果!b为true”或者理解为“如果b为false”则执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马