黑马程序员技术交流社区

标题: 感觉这道题的结果该是C,但是运行却是b,是怎么运行的? [打印本页]

作者: wuzeshui    时间: 2016-1-16 00:50
标题: 感觉这道题的结果该是C,但是运行却是b,是怎么运行的?
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");


作者: qt520    时间: 2016-1-16 08:08
就是b啊,b是true
之前有个帖子答案是c是因为if(b=false),你这个是if(b==false)
作者: leleranran    时间: 2016-1-16 08:19
第一个 是赋值语句,赋值后b的值是true,第一个if括号中是比较表达式,结果是布尔类型,true不等于false,所以if中的语句不执行,进入第一个else if语句,是b==true,判断为true所以执行
作者: wangjianfeng    时间: 2016-1-16 10:28
b=true是赋值语句,if(b==false)相当于true 和false相等吗?肯定不相等.a就肯定不会被打印,跳到b,此时b是true,将会执行打印b那条语句
作者: 宋达思    时间: 2016-1-16 10:32
记住,无论是判断语句还是循环语句,判断表达式或循环条件表达式内的结果一定是boolean类型的,只有true和false这两种,只有结果为true时,才会执行里面的语句。我表达的未必到位,但基本是这个意思,记住这点,你就知道该如何运行了。
作者: Tkight    时间: 2016-1-16 10:56
果断B啊 b=true 如果b等于假 则执行a不满足条件1则执行条件2,条件2如果是真则执行下列,b=真 执行跳出循环。
作者: z195061    时间: 2016-1-16 12:48
这道题有考过,是C
作者: ContainsM    时间: 2016-1-16 14:01
z195061 发表于 2016-1-16 12:48
这道题有考过,是C

考过? 选C? 对了?
作者: heima7788    时间: 2016-1-16 22:25
选b,c中!b是false




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