Java開發筆記(十二)布爾變量論道與或非


在編程語言的設計之初,它們除了可以進行數學計算,還常常用於邏輯推理和條件判斷。為了實現邏輯判斷的功能,Java引入了一種布爾類型boolean,用來表示“真”和“假”。該類型的變量只允許兩個取值,即true和false,其中true對應真值,而false對應假值。
如同數值變量擁有加減乘除四則運算那樣,布爾變量也擁有邏輯方面的四則運算,包括“非”、“與”、“或”、“異或”,下面分別加以介紹。
1、“非”運算求的是某布爾變量的對立值,若原變量值為true,則“非”運算的結果為false,若原變量值為false,則“非”運算的結果為true。Java把符號“!”加在布爾變量前面,表示這里進行“非”運算。
2、“與”運算求的是兩個布爾變量的邏輯交集,只有兩個變量都為true時,運算結果才為true,其余情況的運算結果都為false。Java把符號“&”放在兩個布爾變量之間,這里表示進行“與”運算。
3、“或”運算求的是兩個布爾變量的邏輯並集,只要兩個變量有一個為true,運算結果就為true;只有兩個變量都為false時,運算結果才為false。Java把符號“|”放在兩個布爾變量之間,表示這里進行“或”運算。
4、“異或”運算求的是兩個布爾變量的邏輯相異,當兩個變量同為true或者同為false時,運算結果為false;當兩個變量一個為true另一個為false時,運算結果為true。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);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM