短路的意思就是惰性運算,當符號左邊的式子已經可以確認最后結果時,符號右邊的式子就不進行計算了。
短路與是Java語言中的一個邏輯運算符,記作&&,與編程語言中的與(&)相似,但是具有短路性質:在使用&進行運算時,不論左邊為true或者false,右邊的表達式都會進行運算,而如果使用&&進行運算,當左邊為false時,右邊的表達式不會進行運算,因此&&被稱為短路與。
短路或是Java語言中的一個邏輯運算符,記作||,與編程語言中的或(|)相似,但是具有短路性質:在使用|進行運算時,不論左邊為true或者false,右邊的表達式都會進行運算,而如果使用||進行運算,當左邊為true時,右邊的表達式不會進行運算,因此||被稱為短路或。
短路與和短路或的驗證:
import java.util.Random;
/**
* copyright(c)2021 zbh.ALL rights Reserved
* <p>
* 描述:
*
* @author zbh
* @version 1.0
* @date 2021/2/23
*/
public class Demo1 {
public static void main(String[] args) {
// 驗證短路與
System.out.println("短路與:");
boolean result = A() && B();
System.out.println("---------------");
// 驗證短路或
System.out.println("短路或:");
result = A() || B();
System.out.println("---------------");
// 驗證與
System.out.println("與:");
result = A() & B();
System.out.println("---------------");
// 驗證或
System.out.println("或:");
result = A() | B();
}
private static boolean A() {
System.out.println("enter A");
boolean result = false;
// 生成隨機的true和false
Random random = new Random();
result = random.nextBoolean();
// 輸出返回的boolean類型是true還是false
System.out.println("A:"+result);
return result;
}
private static boolean B() {
System.out.println("enter B");
boolean result = false;
// 生成隨機的true和false
Random random = new Random();
result = random.nextBoolean();
// 輸出返回的boolean類型是true還是false
System.out.println("B"+result);
return result;
}
}
運行結果:
由結果可得,當A()返回的是false,運行的是短路與時,B()並沒有執行。當A()返回的是true,運行的是短路或時,B()沒有執行。當執行與和或時,無論A()返回什么,B()都會執行。
總結
-
對於與來說,要求所有的條件都要判斷。
-
對於短路與來說,如果第一個條件為false,則后面的條件不再判斷。
-
對於或來說,要求所有的條件都要判斷。
-
對於短路或來說,如果第一個條件為true,則后面的條件不在判斷。