问个基本问题,|和||,&和&&有什么区别
|是布尔或,||是条件或,这个布尔和条件之间有什么区别呢?

解决方案 »

  1.   

    ||和&&在Java中,称为短路式(Short-circuiting).
    也就是说,在使用&&操作符时,如果操作符左边为flase,则不计算操作符的后边,只有在左侧为true的时候才计算后边.使用||一样。这种运算不必评估表达式中的所有部分,提高了效率。
      

  2.   

    短路就是一旦明确无误地确定整个表达式的值,就不再计算表达式余下部分了, 
    example:
    public class ShortCircuit{
    static boolean test1(int val){
    System.out.println("tets1("+val+")");
    System.out.println("result :"+(val<1));
    return val<1;
    }
    static boolean test2(int val){
    System.out.println("tets2("+val+")");
    System.out.println("result :"+(val<2));
    return val<2?false:true;
    }
    static boolean test3(int val){
    System.out.println("tets3("+val+")");
    System.out.println("result :"+(val<3));
    return val<3;
    }
    public static void main(String[] args){
    if(test1(0)&&test2(2)&&test3(3)){
    System.out.println("ture");
    }
    else{
    System.out.println("false");
    }
    }
    }
    自己看一下结果就理解了!