Java中操作邏輯運算子時進行「短路」測試

2021-07-10 13:48:26 字數 741 閱讀 6249

操作邏輯運算子時,我們會遇到一種名為「短路」的情況。這意味著只有明確得出整個表示式真或假的結

論,才會對表示式進行邏輯求值。因此,乙個邏輯表示式的所有部分都有可能不進行求值:

public class shortcircuit 

static boolean test1(int val)

static boolean test2(int val)

static boolean test3(int val)

public static void main(string args)

}

每次測試都會比較自變數,並返回真或假。它不會顯示與準備呼叫什麼有關的資料。測試在下面這個表示式

中進行:

if(test1(0)) && test2(2) && test3(2))

很自然地,你也許認為所有這三個測試都會得以執行。但希望輸出結果不至於使你大吃一驚:

第乙個測試生成乙個true 結果,所以表示式求值會繼續下去。然而,第二個測試產生了乙個false 結果。由

於這意味著整個表示式肯定為false,所以為什麼還要繼續剩餘的表示式呢?這樣做只會徒勞無益。事實

上,「短路」一詞的由來正種因於此。如果乙個邏輯表示式的所有部分都不必執行下去,那麼潛在的效能提

公升將是相當可觀的。

java邏輯運算子

什麼是邏輯運算子?就是讓我們的條件多組合在一起,一次組合多個條件,然後再運算最後的邏輯值是否滿 足要求,說白了邏輯運算子就是多個選擇或者多個要求。邏輯運算子有 與 或 非 與 的意思就是同時的意思,必須要求兩邊都為true才為true如 10 12 100 100 問一下那邊 和這邊是不是為真如果都...

Java邏輯運算子

假設布林變數a為真,變數b為假 稱為邏輯與運算子。當且僅當兩個運算元都為真,條件才為真。a b 為假。稱為邏輯或操作符。如果任何兩個運算元任何乙個為真,條件為真。a b 為真 稱為邏輯非運算子。用來反轉運算元的邏輯狀態。如果條件為true,則邏輯非運算子將得到false。a b 為真。當使用與邏輯運...

Java邏輯運算子

邏輯運算子把各個運算的關係表示式連線起來組成乙個複雜的邏輯表示式,以判斷程式中的表示式是否成立,判斷的結果是 true 或 false。邏輯運算子包括 其中 和 是雙目運算子,實現邏輯與 邏輯或 是單目運算子,實現邏輯非。表 1 給出了邏輯運算子的用法 含義及例項。表1 邏輯運算子的用法 含義及例項...