if...else if...else条件判断语句没看懂
代码是这样的:boolean b=true;
if(b=false) { // 判断条件1
System.out.println("a");
} else if(b) { // 判断条件2
System.out.println(b);
} else if(!b) { // 判断条件3
System.out.println("c");
} else {
System.out.println("d");
}
我的理解:定义一个布尔变量b的值是true,第一个判断条件:b的值是不是false?如果是,打印输出文本a;如果不是,判断条件2:true吗?,如果是,输出b的值;如果不是,判断条件3:false吗?如果是,输出文本c;如果不是,输出文本d。
请问,我的理解对吗?最终为什么会执行了判断语句3输出文本c,而不是执行判断语句2输出b的值?{:10_266:} 应该是 if b == false吧
没学过Java,但看各种语言的样子,应该是== 应该是:if(b==false),=是赋值的,==是判断是否相等的 首先你if第一句就是赋值把false赋值给了b,然后b就是false,既然是假那么if和elseif后面的语句怎么会执行,然后碰到个非b为真,就执行语句输出C。
整个语句结束。你要注意if括号里面要表示判断是是否等于是==,不是= Love/小/wei 发表于 2020-3-30 21:00
首先你if第一句就是赋值把false赋值给了b,然后b就是false,既然是假那么if和elseif后面的语句怎么会执行, ...
谢谢大佬解答! 在第一个if条件里你把false赋值给了b,条件false所以a不输出,然后继续第二个if条件,b在第一个里面被赋值为了false所以第二个还是false,不输出b,继续第三个if条件,!就是和条件相反的意思,不是b的,也就是不是false,不是false那就是true了,条件为true,所以输出c,到这里就停了。 =是赋值用的呀,第一个语句你直接让b等于false了,所以第一个语句没有执行,执行的是第三个 楼主,你忽视了一个东西。我理解你的意思,你把布尔值当作判断条件,可是,布尔类型的值只有True和False呀! 真香定理 发表于 2020-4-24 18:50
=是赋值用的呀,第一个语句你直接让b等于false了,所以第一个语句没有执行,执行的是第三个
???难道不应该是给b定义了true么??怎么是false了。。 一开始的b是全局变量,给的赋值是true,但第一个if又把false赋值给b,但是b不可更改,就有了局部变量b,且赋值为false,所以第二个if判断俩b是否一致,不一致,所以就直接到第三个else if判断一致,所以输出c
页:
[1]