本帖最后由 曹昌 于 2012-6-8 12:49 编辑
public class Test{
public static void main(String args[]){
boolean b1=test1(7)&&test2(4);
boolean b2=test1(4)||test2(7);
System.out.println("b1:"+b1+" b2:"+b2);
}
public static boolean test1(int n){
System.out.println("这是第一个测试"); 第一次 7<5 flase,短路了,有一个假就是假就不执行了第二个了
return n<5;
}
public static boolean test2(int n){
System.out.println("这是第二个测试"); 第二次 4>3 ture ,因为是双或 有一个为真 就是真了 不需要执行第二个
return n>3;
}
楼主看了这个会更明白:
&与&&的区别:
共同点:二者都可以作为逻辑与的运算符,表示逻辑与, 不同点:&&有短路的功能,如果第一个表达式为false时,不需要进行第二个表达式的运算, 当&操作符两边的表达式不是boolean类型时,表示按位与操作。Eg:我们通常使用0x0f来与一个整数进行&运算,获取低四位;
|和||的区别: |:无论左边的运算结果是什么,右边都参与运算。 ||:当左边为真时,右边不参与运算的。
|