作為 Codegym 大學課程一部分的導師授課片段。報名參加完整課程。


“嗨,阿米戈。讓我告訴你一種新的數據類型。布爾值。這種類型的變量只能取兩個值:

“我們如何使用它?”

“這種類型在很多地方隱式使用。就像任何加法運算產生一個數字一樣,任何比較的結果都是布爾值。這裡有一些例子:”

代碼 解釋
1個
boolean m;
這兩個表達式是等價的。布爾變量的默認值為false
2個
boolean m = false;
3個
if (a > b)
    System.out.println(a);
比較的結果(truefalse)將分配給變量m如果表達式的計算結果為true,則條件得到滿足。
4個
boolean m = (a > b);
if (m)
    System.out.println(a);
5個
boolean m = (a > b);
if (m == true)
    System.out.println(a);
無需將邏輯(布爾)變量與truefalse進行比較。比較的結果將是一個與其他變量匹配的布爾值。例如,true == true 的計算結果為 true; true == false 的計算結果為 false
6個
boolean m = (a > b);
if (m)
    System.out.println(a);

“更多例子:”

代碼 解釋
1個
public boolean isALessThanB (int a, int b)
{
    if (a < b)
        return true;
    else
        return false;
}
此方法驗證數字 a 是否小於數字 b。

這裡有四個等價的比較。最後一個是最緊湊和正確的。始終嘗試使用緊湊的表示法。

2個
public boolean isALessThanB (int a, int b)
{
   boolean m = (a < b);
    if (m)
        return true;
    else
        return false;
}
3個
public boolean isALessThanB (int a, int b)
{
    boolean m = (a < b);
    return m;
}
4個
public boolean isALessThanB (int a, int b)
{
    return a < b;
}

“如果我想寫 0<a<b 怎麼辦?”

“Java 沒有接受三個操作數的比較運算符。因此,您需要這樣做:(0<a) AND (a<b)。”

“我寫AND這個詞嗎?”

“等等。我會解釋一下。Java 有三個邏輯運算符:ANDORNOT。您可以使用它們來構造不同複雜度的條件。您只能將這些運算符用於布爾表達式。所以,您不能寫( a+1) AND (3),但是(a>1)AND (a<3)沒問題。”

NOT運算符是一元的:它只影響右邊的表達式。它更像是負數前的減號,而不是兩個數字之間的乘號。”

“您可以對布爾(邏輯)變量執行各種操作。”

“像什麼?”

“讓我們來看看:”

邏輯運算符 Java 符號 表達 結果
&&  &&  真的
&&  錯誤的
 &&  錯誤的
&& 錯誤的
或者 || || 真的 真的
|| 錯誤的 真的
|| 真的 真的
|| 錯誤的 錯誤的
不是 真的 錯誤的
錯誤的 真的
常用組合和表達 毫米 錯誤的
米|| !米 真的
!(a && b) !一個 || !b
!(一個||乙) !a && !b

“你能給我更多的例子嗎?”

“當然:”

Java 符號 邏輯符號
(a<3) && (a>0) (a < 3) 和 (a>0)
(a>10) || (a<100) (a>10) 或 (a<100)
(a<b) && (!(c<=d)) (a<b) 與(非(c<=d))

“現在,做一些任務。”