当前位置: 代码迷 >> Java相关 >> boolean型如何用
  详细解决方案

boolean型如何用

热度:6067   发布时间:2013-02-25 21:49:11.0
boolean型怎么用啊
下列程序段执行后b3的结果是?
boolean b1=true,b2,b3;
b3 = b1 ? b1:b2;

A) 0 B) 1 C)true D) false

偶认为b3为false 此时 b3=b1为假 则三目运算后位b2即为false,但答案是true。求解释

------解决方案--------------------------------------------------------
小弟是菜鸟。刚踏入这行业。看到你标题我觉得我能解释,但是内容解释不了
------解决方案--------------------------------------------------------
b3 = b1 ? b1:b2;
相当于
if(b1==true){
 b3=b1;
}else{
b3=b2;
}
------解决方案--------------------------------------------------------
显然<=>b3=( b1 ? b1:b2),结果为true,b3==b1的话就另外考虑了.


------解决方案--------------------------------------------------------
b2都没初始化值,这段代码有问题。
------解决方案--------------------------------------------------------
这里的=号是赋值运算符,boolean型变量默认是false。在这里,三目运算符的优先级高于赋值运算符,所以先判断b1的值是true,故将b1的运算符赋给b3,所以最后值为真。
------解决方案--------------------------------------------------------
Java code
boolean b1=true,b2,b3;b3 = b1 ? b1:b2;//三目运算// 结果相当于:// b3 = (b1 ? true : b2);// b3 = ( true ? true:b2)// b3 = true;if(b1 == true) {    b3=b1;} else {    b3=b2;}
------解决方案--------------------------------------------------------
探讨
这里的=号是赋值运算符,boolean型变量默认是false。在这里,三目运算符的优先级高于赋值运算符,所以先判断b1的值是true,故将b1的运算符赋给b3,所以最后值为真。

------解决方案--------------------------------------------------------
下列程序段执行后b3的结果是?
boolean b1=true,b2,b3;
b3 = b1 ? b1:b2;

A) 0 B) 1 C)true D) false


解: 因为 b1=true ; 所以 b3 = b1 ? b1:b2;--> b3 = b1 (赋值); 而 b1=true 则 b3 = true
------解决方案--------------------------------------------------------
同上所说
------解决方案--------------------------------------------------------
应该是这样的:先计算b1?b1:b2--->true,然后将其结果赋值给b3,故b3为true
------解决方案--------------------------------------------------------
楼主看好了 使用的=不是== 
=代表的是赋值 这时候b3已经是true了
------解决方案--------------------------------------------------------
好问题,记下来看看
  相关解决方案