CodeGym /Java Blog /Toto sisi /Java 布爾值
John Squirrels
等級 41
San Francisco

Java 布爾值

在 Toto sisi 群組發布
在 Java 語言的上下文中,“布爾”一詞可以有不同的含義,儘管它們非常相關。它可能是:
  • 布爾原始類型或此類型的布爾變量
  • Java Boolean類或Boolean包裝器對象
  • 布爾表達式,布爾值,一些條件
  • Java 布爾運算符
在本文中,我們將涵蓋所有這些選項並解釋布爾表達式背後的概念。 Java 布爾值 - 1

什麼是一般意義上的布爾值

布爾表達式的概念來自數學,或者更確切地說,來自數理邏輯。命題代數中的布爾表達式是可以說是真或假的表達式。例如:
“雪是白的” “鱷魚會飛” “2 + 2 = 4” “1 + 1 = 21”
同時,“2”或“雪”不是布爾表達式。

Java 布爾原始數據類型和布爾變量

談到Java中的boolean,首先很可能是boolean原始數據類型和這種類型的boolean變量。正如您可能已經猜到的那樣,這種類型的變量只能取兩個值,true 和 false。Java 有相當嚴格的限制: Java 中的布爾值不能轉換為任何其他數據類型,反之亦然。特別是, Java 中的布爾值不是整數類型,不能使用整數值代替布爾值。下面是直接設置布爾類型的例子:

boolean myBoolean; //boolean variable
myBoolean = false; 
boolean myBoolean1 = true; //another boolean variable
這裡我們有 2 個布爾變量。讓我們用一個使用布爾類型的例子來寫一個小程序:

//boolean variable example
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
該程序向控制台打印“false”。順便說一句,布爾變量默認設置為 false,但 Java 不允許您使用未初始化的局部變量。

Java 中的布爾表達式

除了將布爾變量顯式初始化為 true 或 false 之外,布爾數據類型還在許多地方隱式使用。正如任何一個數字相加的結果都會是一個數字,任何一個比較的結果都會是真或假,即是布爾類型。這意味著,除了通過布爾變量賦值語句直接指定布爾值外,布爾值還來自各種比較,例如5 > 2,主要用於條件語句和循環語句。下面是一個使用布爾類型的例子:

public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       int a = 5;
       int b = 7;
       System.out.println(a < b);
       System.out.println(0 > 7);
       System.out.println(myBoolean == false);
   }
}
輸出是:
真假真
在a < b 的情況下,<運算符將左側的表達式與右側的表達式進行比較。我們在屏幕上顯示了比較結果。由於5 < 7(語句為真),值將打印到控制台。在第二種情況下,我們顯示零和七的直接比較,在第三種情況下,我們詢問變量myBoolean的值是否為 false。由於是這種情況,我們輸出值true。事實上,要在 Java 中構建布爾表達式,我們可以使用任何比較運算符:
比較運算符 Java運算符 操作示例 運行結果
較少的 < 一個 < 乙 如果a小於b則為否則為
更大 > 一個 > 乙 如果a大於b則為,否則為假
小於或等於 <= 一個 <= 乙 如果a小於b或者它們相等則為true ,否則為false
大於或等於 >= 一個 >= 乙 如果a大於或等於b則為true,否則為false
平等的 == 一個 == 乙 true,如果a等於b,否則false
不等於 != 一個!= b true,如果a不等於b,否則false

使用布爾值的地方

布爾值和條件表達式經常用於分支語句、三元運算符和循環的條件中。事實上,它們的使用是基於檢查某些布爾表達式。例如:

public class BoolTest2 {
       public static void main(String[] args) {
           int i = 0;
           while (i <= 10)
           {
               System.out.println(i);
               i++;
           }         
      }
}
這個程序打印出一個整數序列,只要滿足 while 後括號中的條件,它們就會加 1。也就是說,當表達式i <=10為真時。

Java 布爾運算符。使用布爾運算符構建布爾表達式

以下邏輯(或布爾)操作在 Java 中可用:
  • 邏輯非,也就是 NOT 或反轉。在 Java 中,用符號! 表達前。

  • 邏輯與,也是與或連詞。在應用它的兩個表達式之間用符號&表示。

  • 邏輯或在Java中,也是OR,也是析取。在 Java 中,用符號|表示 兩個表達式之間。

  • 異或、異或、嚴格析取。在 Java 中,它由兩個表達式之間的符號^表示。

  • 在 Java 中,邏輯運算符包括條件或,表示為|| , 以及有條件的 and, &&

讓我們看一下表格,其中簡要描述了每個 Java 布爾運算符,下面我們將更詳細地描述它們並給出代碼示例。表中的“操作數”是指應用運算符的邏輯表達式或變量。

a | b == true
布爾 Java 運算符 姓名 類型 描述 例子
邏輯“非”(否定) 一元的 !x表示“不是 x”。如果xfalse,則返回true。如果x真,則返回

boolean x = true;

然後


// !x == false
& 邏輯“與”(和,邏輯乘法) 二進制 如果ab都為真,則(a & b)返回

a = true;
b = false;

然後


a & b == false
| 邏輯或(邏輯加法) 二進制 如果ab或兩者都為真,則(a | b)返回

a = true;
b = false;

然後

^ 邏輯異或 (XOR) 二進制 (a ^ b)返回true,如果只有一個操作數(a 或 b)為true。如果ab同時為 true 或 false,則返回false 。事實上,如果a不等於b它返回true

a = true;
b = false;

然後


a ^ b == true
&& 條件與(縮寫為邏輯與) 二進制 a && b與a & b相同,但如果 a 為false,運算符只返回false而不檢查b
|| 條件或(縮寫邏輯或) 二進制 一個|| b與a |相同 b,但如果atrue,則運算符只返回true而不檢查b
請注意,在 Java 中,運算符& , | ^也適用於整數。在這種情況下,它們的工作方式略有不同,被稱為按位(或按位)邏輯運算符。讓我們舉個例子,展示幾個使用邏輯運算符組成的邏輯表達式。

public class BoolTest2 {
   public static void main(String[] args) {
   int a = 5;
   int b = 7;
   boolean myBool1 = true;
   boolean myBool2 = false;
       System.out.println(myBool1&myBool2);
       System.out.println(myBool1|myBool2);
       System.out.println(!myBool1);
       System.out.println((a > b) & !myBool1 | myBool2);
   }
}
這是輸出:
假 真 假 假
事實上,您可以使用邏輯運算符構建非常複雜的邏輯結構。例如
(a<!b)&(q+1 == 12)^(!a | c & b > 1 + b)|(q ^ a > !b)
如果所有變量都被初始化,這樣的構造將起作用。但是,您不應該濫用它們,它們會使代碼難以閱讀。然而,處理這樣的邏輯結構是非常有用的。嘗試用表中給出的其他邏輯運算符組成邏輯表達式。

邏輯運算的優先級

如同在數學中一樣,在編程中,如果運算符出現在同一表達式中,則它們具有特定的執行順序。一元運算符優於二進制運算符,乘法(甚至邏輯)優於加法。以下是放置在主題列表中的邏輯運算符,它們的優先級越高:
  • &

  • ^

  • |

  • &&

  • ||

Java 布爾包裝器

在Java中,每個原始類型都有一個“兄弟”,一個包裝類(Wrapper)。包裝器是一個特殊的類,它在內部存儲原語的值。然而,這是一個類,因此您可以創建它的實例(對象)。這些對像在內部存儲了圖元的必要值,而它們將是真實的對象。Java boolean 原始類型有一個包裝器 Java Boolean(大寫 B)類。Boolean Class 對象的創建方式與其他對像一樣:

Boolean b = new Boolean(false);
Java Boolean類有一些有用的方法。其中最有趣的方法之一是parseBoolean方法。 static boolean parseBoolean(String s)方法將字符串參數解析為布爾值。如果字符串參數不為空且等於(忽略大小寫)字符串“true”,則返回的布爾值表示值true 。否則返回false

parseBoolean 方法示例


public class BoolTest2 {

        public static void main(String[] args)
        {
            System.out.println(Boolean.parseBoolean("True"));
            System.out.println(Boolean.parseBoolean("TRuE"));
            System.out.println(Boolean.parseBoolean("False"));
            System.out.println(Boolean.parseBoolean("here"));

        }
    }
輸出是:
真真假假
為了鞏固您所學的知識,我們建議您觀看我們的 Java 課程中的視頻課程
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION