boolean b1 = true;
boolean b2 = false;
System.out.println(b1|b2);运行之后会输出true, "|"不是按位操作符嘛,不是理论上左右只能是数字嘛?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【kim_lc】截止到2008-07-24 15:29:20的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:40                       每贴平均分数:20                       
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:2                        结贴的总分数:40                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    ||只能表示逻辑或,而且如果前面的运算结果为true的话就不进行后面的运算了.而|作为逻辑或的时候两边都计算.
      

  3.   

    把true 看成1 ,把 false 看成 0
      

  4.   

    “&&”与“||”是短路(short circuit)操作符 ,“&”和“|”是非短路操作符,“&&”与“||”是布尔逻辑运算符,“&”与“|”是位运算符。
    他们的区别是:对于短路操作符,如果根据操作符左边的布尔表达式就能推算出整个表达式的布尔值,将不执行操作符右边的布尔表达式;对于非短路表达式,始终会计算操作符两边的表达式。