邏輯運算符用於連接兩個條件表達式或布爾類型的變量,用於執行多個判斷。在數學中,表示一個數值的範圍時,經常用不等式來表述。例如:假設一個數值取值範圍為0到100,設該數值為x,不等式0<x<100給出了x的取值範圍,在Java程序語言中,邏輯運算符可以實現類似數學中的不等式。下表列出了Java語言支持的邏輯運算符,表中假設布爾變量A為真,變量B為假。
邏輯與運算符「&&」,用於判斷運算符兩邊的條件表達式或布爾變量是否同為真,如果同為真,返回結果為true,否則返回false。例如下面語句:
int a = 10;
int b = 20;
int c = 15;
boolean bJudge = c > a && c < b;
聲明了變量a、變量b、變量c,變量a和變量分別賦值為10和20,變量c賦值為15。第四條語句邏輯與運算符「&&」連接了2個條件表達式,分別是c > a和c < b,如果這兩個表達式計算結果都為真,則bJudge為真,否則bJudge為false。此時bJudge的值為true。該運算符還有一個特點,當左側的條件表達式或布爾變量為假時,則直接返回結果false,不再執行運算符右側的表達式或布爾變量。
邏輯或運算符「||」,用於判斷運算符兩邊的條件表達式或布爾變量是否有一個為真,如果有一個為真,返回結果為true,否則返回false。例如下面語句:
int a = 10;
int b = 20;
int c = 15;
boolean bJudge = c > a || c < b;
聲明了變量a、變量b、變量c,變量a和變量分別賦值為10和20,變量c賦值為15。第四條語句邏輯或運算符「||」連接了2個條件表達式,分別是c > a和c < b,這兩個表達式計算結果任何一個為真時,則bJudge為真,否則bJudge為false。此時bJudge的值為true。
邏輯非運算符「!」,用於判斷運算符兩邊的條件表達式或布爾變量是否有一個為真,如果有一個為真,返回結果為true,否則返回false。例如下面語句:
int a = 10;
int b = 20;
boolean bJudge = !( a> b);
聲明了變量a、變量b,變量a和變量分別賦值為10和20。第三條語句邏輯非運算符「!」用於取反條件表達式a> b的結果,如果a> b為真,取反後為false,如果a> b為假,取反後為true。此時bJudge的值為true。語句中用括號把a> b括起來,用於提高a> b的優先級,先計算a> b,再取反。
示例1:邏輯運算符
在D盤Java目錄下,新建「LogicSample.java」文件。用記事本打開「LogicSample.java」文件,輸入以下代碼:
代碼結構分析
程序功能主要是演示邏輯運算符的用法。
類似語句「bJudge = !( a> b);」,Java初學者可能會有困惑,語句中有關係運算符和邏輯非運算符,那個運算符先參與運算呢?這就涉及到運算符優先級的問題,關於運算符優先級後面會有介紹。在當前語句中,把關係運算符相關的表達式a> b用括號括起來,以提高其運算優先級,因此先執行關係運算,再執行邏輯非運算。
編譯「LogicSample.java」文件,在命令行窗口輸入「javac LogicSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java LogicSample」運行Java程序,命令行窗口顯示如下信息:

在編程過程中,經常碰到需要判斷兩個條件是否都滿足或只有一個條件滿足的情況,根據判斷結果程序轉向不同的分支。邏輯運算符可以解決上面的問題。
(1)邏輯與運算符兩邊的操作數滿足什麼條件時,邏輯與運算符返回結果為真()
A.一真一假
B.同為真
C.同為假
D.無法判斷真假
(2)邏輯或運算符兩邊的操作數滿足什麼條件時,邏輯或運算符返回結果為假()
A.同為真
B.一真一假
C. 同為假
D.無法判斷
(3)邏輯非運算符是雙目運算符還是單目運算符?