java中短路与和逻辑与,短路或与逻辑或 的区别

明人不说暗话,直接上代码。

一、&& 和& 的区别

1.1 程序代码

public class Test1 {
    /*
    短路与:当第一个条件足以判断出条件的真假 则不会执行后者的操作
    否则则执行
    逻辑与:&两边的表达式都要执行,同为真则为真 否则为假
     */
    public static  void demo1(){
        int n1 = 0,n2 = 0,n3 = 0,n4 = 0;
        //短路与
        if((n1=1) ==2 && (n2=3) ==2){
            System.out.println("【if】短路与:n1="+n1+" "+"n2="+n2);
        }else{
            System.out.println("【else】短路与:n1="+n1+" "+"n2="+n2);
        }
        //逻辑与
        if((n3=1) ==2 & (n4=3)==2){
            System.out.println("【if】逻辑与:n3="+n3+" "+"n4="+n4);
        }else{
            System.out.println("【else】逻辑与:n3="+n3+" "+"n4="+n4);
        }
    }

    public static void main(String[] args) {
        demo1();
    }
}

1.1 运行结果分析图

java中短路与和逻辑与,短路或与逻辑或 的区别_第1张图片

1.2 运行结果分析

短路与的条件能直接判断出程序的真假,故 &&(n2=3)==2就不执行了,而逻辑与两者都要执行,才能判断出真假。

二、|| 和 | 的区别

2.1 程序代码

public class Test1 {
   
    /*
    短路或:当一个条件足以判断出条件的真假,则不会执行后者的操作的
    否则:执行
    逻辑或:|| 两边的表达式都要执行 为真则为真,否则为家
     */
    public static  void demo2(){
        int n1 = 0,n2 = 0,n3 = 0,n4 = 0;
        //短路或
        if((n1=1) ==1 || (n2=2) ==3){
            System.out.println("【if】短路或:n1="+n1+" "+"n2="+n2);
        }else{
            System.out.println("【else】短路或:n1="+n1+" "+"n2="+n2);
        }
        //逻辑或
        if((n3=1) ==1 | (n4=2)==3){
            System.out.println("【if】逻辑或:n3="+n3+" "+"n4="+n4);
        }else{
            System.out.println("【else】逻辑或:n3="+n3+" "+"n4="+n4);
        }
    }

    public static void main(String[] args) {
        demo2();
    }
}

2.2 运行结果图

java中短路与和逻辑与,短路或与逻辑或 的区别_第2张图片

2.3 运行结果分析

当短路或能判处条件则后者的判断就不执行了 即|| (n2=2)==3,否则要执行。而逻辑或 | 则要两者都要执行才行。

你可能感兴趣的:(Java)