1. 程式人生 > >短路與&&(或 ||)和非短路與&(或 |)的區別

短路與&&(或 ||)和非短路與&(或 |)的區別

static ole pri args 驗證 java system string rgs

短路與是JAVA語言中的一個邏輯運算符,記作&&

A&&B, 當A為false時,不去計算B的值而直接返回false;當A為true時,計算B的值。

例子:
public static void main(String[] args){
int a=10, b=20;
System.out.println("原始a="+a);
System.out.println("原始b="+b);
boolean bool;
if(a++==11 && b++==21) {
System.out.println("true");
System.out.println("a="+a);
System.out.println("b="+b);
} else {
System.out.println("false");
System.out.println("a="+a);
System.out.println("b="+b);
}
}

輸出結果:

原始a=10
原始b=20
false
a=11
b=20(註意這裏,b的值並沒有改變)

非短路與是JAVA語言中的一個邏輯運算符,記作&

A&&B, 當A為false時,繼續計算B的值而不直接返回false(與短路與相比較?)

例子:

public static void main(String[] args){
int a=10, b=20;
System.out.println("原始a="+a);
System.out.println("原始b="+b);
boolean bool;
if(a++==11 & b++==21) {
System.out.println("true");
System.out.println("a="+a);
System.out.println("b="+b);
} else {
System.out.println("false");
System.out.println("a="+a);
System.out.println("b="+b);
}
}

輸出結果:

原始a=10
原始b=20
false
a=11
b=21(註意這裏,b的值已經變化了)

短路或和非短路或的區別,可以自己去驗證!!!

短路與&&(或 ||)和非短路與&(或 |)的區別