我对以下java代码感到有点困惑。首先,似乎将赋值语句分配给布尔变量... boolean bvalue = (b = true)
而不是true或false。
然后输出为TRUE
,FALSE
,TRUE
。输出的第三个也是最后一个TRUE让我困惑,因为对于第一个if条件,bvalue的计算结果为true。我没有看到任何明确赋予bvalue false的代码。任何有用的评论将不胜感激。
boolean b;
boolean bvalue = (b = true);
if (bvalue)
System.out.println("TRUE");
else
System.out.println("FALSE");
if (bvalue = false)
System.out.println("TRUE");
else
System.out.println("FALSE");
if (bvalue == false)
System.out.println("TRUE");
else
System.out.println("FALSE");
答案 0 :(得分:4)
=
是赋值运算符。它返回指定的值。是代码
if (bvalue = false)
System.out.println("TRUE");
else System.out.println("FALSE");
相当于
bvalue = false;
if (bvalue)
System.out.println("TRUE");
else System.out.println("FALSE");
答案 1 :(得分:2)
详细描述: -
boolean b;
boolean bvalue = (b = true); //firstly true assigned to b by (b=true) then b assigned to bvalue (bval=true)
if (bvalue) // check if bvalue = true & succeed
System.out.println("TRUE"); // printed
else System.out.println("FALSE");
if (bvalue = false) // firstly assign false to bvalue then if executes
System.out.println("TRUE");
else System.out.println("FALSE"); // printed as bvalue is false
if (bvalue == false) // check if bvalue is false & success
System.out.println("TRUE"); //printed as bvalue is false
else System.out.println("FALSE");
输出: - 真正 假 TRUE
答案 2 :(得分:0)
让我为你分解一下:
boolean b;
boolean bvalue = (b = true);
赋值运算符=,也有一个返回值,它是赋值的值,因此b和bvalue都被赋值为true。
if (bvalue)
System.out.println("TRUE");
else System.out.println("FALSE");
因为bvalue为true,所以打印“TRUE”。
if (bvalue = false)
System.out.println("TRUE");
else System.out.println("FALSE");
这里使用赋值运算符而不是比较运算符= = vs ==,因此bvalue被赋值为false,并且也返回到if语句,使得它采用else路径并打印“FALSE”。
if (bvalue == false)
System.out.println("TRUE");
else System.out.println("FALSE");
这里你比较bvalue,这是假的,与false,这是一个真实的陈述,所以“TRUE”被打印。