在編程語言的設計之初,它們除了能夠進行數學計算,還經常用於邏輯推理和條件判斷。爲了實現邏輯判斷的功能,Java引入了一種布爾類型boolean,用來表示「真」和「假」。該類型的變量只容許兩個取值,即true和false,其中true對應真值,而false對應假值。
如同數值變量擁有加減乘除四則運算那樣,布爾變量也擁有邏輯方面的四則運算,包括「非」、「與」、「或」、「異或」,下面分別加以介紹。
一、「非」運算求的是某布爾變量的對立值,若原變量值爲true,則「非」運算的結果爲false,若原變量值爲false,則「非」運算的結果爲true。Java把符號「!」加在布爾變量前面,表示這裏進行「非」運算。
二、「與」運算求的是兩個布爾變量的邏輯交集,只有兩個變量都爲true時,運算結果才爲true,其他狀況的運算結果都爲false。Java把符號「&」放在兩個布爾變量之間,這裏表示進行「與」運算。
三、「或」運算求的是兩個布爾變量的邏輯並集,只要兩個變量有一個爲true,運算結果就爲true;只有兩個變量都爲false時,運算結果才爲false。Java把符號「|」放在兩個布爾變量之間,表示這裏進行「或」運算。
四、「異或」運算求的是兩個布爾變量的邏輯相異,當兩個變量同爲true或者同爲false時,運算結果爲false;當兩個變量一個爲true另外一個爲false時,運算結果爲true。Java把符號「^」放在兩個布爾變量之間,表示這裏進行「異或」運算。
下面是對布爾變量進行「非」、「與」、「或」、「異或」等邏輯運算的代碼例子:java
// boolean表示布爾類型,該類型的變量只容許兩個取值,即true和false boolean zhen = true; // true表示爲真 System.out.println("zhen="+zhen); boolean jia = false; // false表示爲假 System.out.println("jia="+jia); // 「!」加在布爾變量前面表示進行「非」運算 boolean not = !zhen; System.out.println("not="+not); // 「&」放在兩個布爾變量之間表示進行「與」運算 boolean and = zhen&jia; System.out.println("and="+and); // 「|」放在兩個布爾變量之間表示進行「或」運算 boolean or = zhen|jia; System.out.println("or="+or); // 「^」放在兩個布爾變量之間表示進行「異或」運算 boolean xor = zhen^jia; System.out.println("xor="+xor);
上述的四則邏輯運算當中,「與」、「或」、「異或」三種都須要兩個布爾變量才能判斷,這意味着:假若某個變量既參與邏輯運算,又能保存運算結果,此時的邏輯運算就轉變爲對該變量的自處理。譬如,對一個布爾變量與另外一個布爾值進行「與」運算,且運算結果仍舊保存在該變量中,則可以使用運算符「&=」簡化賦值操做。如同數值計算「x = x+7」等價於「x += 7」那般,也存在布爾計算「value = value&false」簡化成「value &= false」的狀況。依此類推,對布爾變量自身進行或運算,可利用新的賦值運算符「|=」;對布爾變量自身進行異或運算,可利用新的賦值運算符「^=」。這些邏輯賦值符的詳細應用代碼以下所示:編程
boolean value = true; System.out.println("value="+value); // 對布爾變量進行「與」運算,且運算結果仍舊保存在該變量中,則可以使用運算符「&=」 value &= false; // 該行代碼等同於 value = value&false; System.out.println("value="+value); // 對布爾變量進行「或」運算,且運算結果仍舊保存在該變量中,則可以使用運算符「|=」 value |= true; // 該行代碼等同於 value = value|true; System.out.println("value="+value); // 對布爾變量進行「異或」運算,且運算結果仍舊保存在該變量中,則可以使用運算符「^=」 value ^= false; // 該行代碼等同於 value = value^false; System.out.println("value="+value);