大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java教程
Java標(biāo)識符與關(guān)鍵字
Java變量
Java數(shù)據(jù)類型
Java運(yùn)算符
Java控制語句
Java方法

Java邏輯運(yùn)算符

邏輯運(yùn)算符主要包括邏輯與(&),邏輯或(|),邏輯異或(^),短路與(&&),短路或(||)。所有邏輯運(yùn)算符的特點(diǎn)是操作數(shù)都是布爾類型,并且最終的運(yùn)算結(jié)果也是布爾類型。邏輯運(yùn)算符的基本運(yùn)算規(guī)則如下表所示:

操作符 例子 結(jié)果 描述

&

true&true

true

(5>3) & (5>4):5大于3并且5大于4,有道理

|

true|false

true

(5>3) | (5>10):5大于3或者5大于10,沒毛病

!

!false

true

false取反是true,true取反就是false

^

true^false

true

異或運(yùn)算符,只要兩邊的操作數(shù)不同,結(jié)果就是true

&&

true&&true

true

短路與(&&)和邏輯與(&)實(shí)際上最終的運(yùn)行結(jié)果是完全相同的,只不過短路與(&&)會存在短路現(xiàn)象。

||

true||false

true

短路或(||)和邏輯或(|)實(shí)際上最終的運(yùn)行結(jié)果是完全相同的,只不過短路或(||)會存在短路現(xiàn)象。

接下來我們來研究一段代碼,重點(diǎn)看看短路是如何發(fā)生的:

public class LogicalOperatorTest01 {
	public static void main(String[] args) {
		System.out.println(5 > 3 & 5 > 4); //true
		System.out.println(5 > 100 | 5 > 4); //true
		System.out.println(!(5 > 3)); //false
		System.out.println(!(5 < 3)); //true
		System.out.println(true & true); //true
		System.out.println(true & false); //false
		System.out.println(true | false); //true
		System.out.println(!false); //true
		System.out.println(!true); //false
		System.out.println(true ^ false); //true
		System.out.println(true ^ true); //false
		System.out.println(false ^ false); //false
		//重點(diǎn)研究邏輯與(&)和短路與(&&)的區(qū)別
		int x = 100;
		int y = 98;
		int z = 99;
		System.out.println(x > y & x > z); //true
		System.out.println(x > y && x > z); //true
		//通過以上測試得出,邏輯與(&)和短路與(&&)最終運(yùn)行結(jié)果相同
		//那么它們有什么區(qū)別呢?請看以下代碼。
		int m = 99;
		int n = 100;
		System.out.println(m > n & m > n++); //false
		//邏輯與(&)運(yùn)算符,只有當(dāng)兩邊的操作數(shù)都是true的時候,結(jié)果才是
		//true,只要有一個是false,結(jié)果必然是false。以上程序邏輯與
		//左邊的表達(dá)式(m > n)顯然結(jié)果是false,通過左邊的表達(dá)式已經(jīng)可
		//以得出結(jié)果是false了,右邊的表達(dá)式?jīng)]有執(zhí)行的必要,那我們來看一下
		//右邊的表達(dá)式有沒有執(zhí)行,只要輸出n就可以了斷定。
		System.out.println("n = " + n); //101
		//以上程序的運(yùn)行結(jié)果是101,足以說明n++已經(jīng)執(zhí)行了。也說明了邏輯與
		//運(yùn)算符無論左邊表達(dá)式結(jié)果是true還是false,右邊表達(dá)式一定會執(zhí)行。
		//那我們來看一下短路與(&&)是怎樣的?
		int k = 99;
		int f = 100;
		System.out.println(k > f && k > f++); //false
		System.out.println("f = " + f); //100
		//通過以上測試得出f++并沒有執(zhí)行,因?yàn)樽筮叡磉_(dá)式(k > f)為false
		//右邊的表達(dá)式就不再執(zhí)行了,這種現(xiàn)象被稱為短路現(xiàn)象。也就是說對于短路與
		//來說,左邊的表達(dá)式只要為false,就會發(fā)生短路,右邊表達(dá)式不再執(zhí)行了。
	}
}

通過以上的測試,可以得出短路與(&&)在左邊的表達(dá)式結(jié)果為false的時候,右邊的表達(dá)式則不再執(zhí)行,這種現(xiàn)象被稱為短路現(xiàn)象,這種機(jī)制也顯得短路與比較智能一些,效率更高一些,所以在實(shí)際開發(fā)中短路與(&&)的使用率要比邏輯與高一些。但這并不是絕對的,有的時候也可能會選擇使用邏輯與(&),這取決于你是否期望右邊的表達(dá)式一定執(zhí)行。

大家思考一個問題,短路或(||)在什么情況下會發(fā)生短路現(xiàn)象呢?

主站蜘蛛池模板: 国产伦精品一区二区三区免 | 私人小影院在线 观看 | 大乳妇女bd视频在线观看 | 国产成人精视频在线观看免费 | 日韩精品一区二区三区 在线观看 | 手机在线精品视频每日更新 | 欧美中文在线 | 青草视频在线观看免费资源 | 97影院午夜在线观看琪琪 | 国产一区二区三区精品久久呦 | 国产精品久久久精品视频 | 奇米色奇米| 91九色蝌蚪在线 | 一级特黄a免费大片 | 国产未成女年一区二区 | 欧美日韩中文字幕在线 | 99re视频精品全部免费 | 久久国产乱子伦精品免费看 | 久久天堂 | 中文字幕免费视频精品一 | 国产中文字幕在线免费观看 | 成人影院一区二区三区 | 午夜日韩 | 国产精品怡红院永久免费 | 99成人精品 | 9久re热视频这里只有精品 | 曰本人一级毛片免费完整视频 | 欧美一级毛片生活片 | 中文亚洲欧美 | 国产美女激情 | 亚洲精品久久麻豆蜜桃 | 久久99热国产这有精品 | 97夜夜澡人人爽人人免费 | 欧美一区二区三区在线 | 久久综合久久综合久久 | 亚洲片在线观看 | 奇米四色视频 | 国产欧美一区二区三区视频 | 99热久久免费精品首页 | 色综合久久天天综合绕观看 | 久久香蕉国产线看观看精品yw |