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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

亲亲

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 亲亲 初级黑马   /  2014-5-22 21:38  /  1468 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家好,我是个零基础学习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,但是是错的,有人帮忙解释下吗?

6 个回复

倒序浏览
本帖最后由 谜燕 于 2014-5-22 21:48 编辑

if(b=false)是赋值语句,因此现在的b的值是false,if--else if--else条件判断语句只执行为true的语句,因此打印c。如果是if(b==false)那你选择的就对了,这里一定要区分==(比较运算符)和=(赋值运算符)。
回复 使用道具 举报
本帖最后由 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");
复制代码

过程就是上面这样的~~

回复 使用道具 举报
运行结果为 C ,当b 运行到   if(b=false) 输出为 fals 继续往下运行,运行到   else if(b)时()里面默认的值为false,所以往下走,运行到else if(!b)时 输出 ture,所以结果为 c
回复 使用道具 举报
在第二行,if(b=false)中,这里b被赋值为false,所以应选c
回复 使用道具 举报
b在运行时被赋值false,所以选c
回复 使用道具 举报
答案是C 你应该好好看下IF ELSE那的只是点,很简单的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马