導航:首頁 > 編程語言 > java短路邏輯

java短路邏輯

發布時間:2022-08-08 08:28:27

java & &&

首先&既可以做位運算又可以做邏輯運算 &&只能做邏輯運算
作為邏輯運算符時:
表達式1 = 邏輯1 && 邏輯2
表達式2 = 邏輯3 & 邏輯4
&&:
如果邏輯1=FALSE 由於&& 就不會去判斷邏輯2了 因為既然是與判斷 邏輯1已經是FALSE了 表達式1自然為FALSE 不管邏輯2是FALSE還是TRUE 沒必要判斷了 如果邏輯1為TRUE 才會去判斷邏輯2的結果 邏輯2為TRUE 表達式1就為TRUE 邏輯2為FALSE 表達式就為FALSE
&:
如果邏輯3為FALSE 由於是& 雖然是與判斷 表達式2已經為FALSE了 但仍然會去判斷邏輯4 盡管無法改變表達式2的結果了 這就是區別於&&的地方 如果邏輯3為TRUE 就和&&一樣 繼續判斷邏輯4以求表達式2的結果

最後&作為位運算符的時候進行的是位運算 就是二進制運算 兩邊的值都是二進制數 結果也是位運算的結果 自然不會是簡單的0/1 做邏輯運算時兩邊的值都是0/1 它別無選擇 所以結果只能是0/1 關鍵是區別&什麼時候做的是位運算 什麼時候做的是邏輯運算

㈡ JAVA邏輯運算符短路的疑問!!!!!求達人幫忙

短路問題:

&&(和) 運算符

|| (或) 運算符

&& 運算符的優先順序高於 || 運算符

(你的表達式寫的不規范哦,最好是加上小括弧(),雖然你這里達到了同樣的效果)

假設兩個條件: P Q

&& 運算||運算

P TTFFPTTFF

Q TFTFQTFTF

TFFFTTTF

現在來看我們的 if 條件

flag = (x>='a' && x<='z') || (x>='A' && x<='Z')

因為 有 小括弧 () 所以優先順序最高

    1. 先看 || 運算 前面一段

      即:flag1 = (x>='a' && x<='z')


      因為:x = 'Z' ; 所以: x>='a' 就為 F

    根據上面的&&運算表,我們可以看出

    只要有一個條件為F,整個條件都F

    (因為前面的條件(x>='a')為F,所以後面的條件(x<='z')是否正確,

    計算機都不會去執行它了,這里就發生了短路)

    即整個條件都為 flag1 = F


    b. 接著我們來看 flag2 =(x>='A' && x<='Z')

    因為:x = 'Z' ; 所以: x>='A' 就為 T

    根據 && 運算符

    前面為T,(我們才有執行下一個條件的可能性,而條件(x>='A')條件為T,所以程序 會去判斷後面的條件(a=『Z』),所以第二次沒有發生短路)

    根據條件,後面也為 T

    所以: flag2 = T

    c . 最後我們根據 ||運算表, 我們可以得出結果

    flag = flag1 || flag2 = ( F || T) = T

    在||運算中,只要有一個為T,那麼整個表達式都是為T的。

    所以:如過flag1為T,那麼無論flag2是否是T,計算機都不會在去執行flag2,這里也就發生了短路。


    希望您能明白(思路有點亂)!

㈢ java裡面的短路是什麼意思

運算符書上說:「在java中的邏輯與和邏輯或運算符採用「短路」方法進行計算,先求出運算符左邊的表達式的值,對或運算如果為true,則整個表達式的結果為true,不必對運算符右邊的表達式進行計算。同樣,對與運算,如果左邊的表達式的值為false,則不必對右邊的表達式的值進行計算,整個表達式的值為false,」

㈣ JAVA中的邏輯運算符!

三、邏輯運算符:
&(與)
|(或)
!(反)
&:當兩邊同時為真時,結果為真,否則為假
|
:當兩邊有一邊為真時,結果為真,否則為假
!
:真值變假值,假值變真值
學JAVA也有不短的時間了,現在開發也有1年多了,不過你說的那些基礎知識我也記不得。我一開始也一樣害怕,學了就忘記了
不過告訴你,JAVA不是背出來的,是邏輯。
記憶方面,你只需要知道到哪裡去查閱。
這就是為什麼有那麼多API
reference等的原因啊,因為大家都記不得。

㈤ JAVA中&&和&、||和|(短路與和邏輯與、短路或和邏輯或)的區別是什麼

首先名稱是不同的 &&邏輯與 ||邏輯或 它們都是邏輯運算符 & 按位與 | 按位或 它們都是位運算符 if(a==1&&b==2) 這是說既要滿足a=1也要滿足b=2 if(a==1||b==2) 這是說或者滿足a=1或者要滿足b=2 而a&b或者a|b則是二進制的與或運算 &同為1時為1,否則為0 |同為0時為0,否則為1 3&5則 0011 &0101 0001 等於1 3|5則 0011 |0101 0111 等於7 明白了吧O(∩_∩)O~ 補充: && 邏輯與 也叫做短路與 因為只要當前項為假,它就不往後判斷了,直接認為表達式為假|| 邏輯或 也叫做短路或 因為只要當前項為真,它也不往後判斷了,直接認為表達式為真

㈥ 問一下java的一些問題

1 可以。聲明方較其它法沒有任何不同。比如Return a[]; 2 每個StringBuffer對象都能 夠存儲由其容量指定的字元。如果超出了StringBuffer對象的容量,則容量就會自動地擴大,以容納多出來的字元,這里的容量指內存空間,長度就是指字元串長了。 當使用邏輯操作符時,我們會遇到一種「短路」現象。即一旦能夠明確無誤地確定整個表達式的值,就不會再計算表達式剩餘的部分了。因此,整個邏輯表達式靠後的部分有可能不會被運算。 System.out.println(false||true);//輸出true,||不存在短路現象,表達式中有任意一部分為true就返回true,所以||邏輯操作符必須要將整個表達式運算完畢才能得出結果。 System.out.println(false&&true);//輸出false。表達式中有任意一部分為false,整個表達式就返回false。不必將整個表達式運算完畢。

㈦ java語言中關於或與短路或的問題。

換成邏輯運算符後,x++==1
是真,所以運算符後面的運算式不再執行,所以y=1

㈧ java中的短路與(&&)、短路或(||) 與 邏輯與(&)、邏輯或(|)有什麼區別啊

首先名稱是不同的:


&&邏輯與||邏輯或它們都是邏輯運算符



&按位與|按位或它們都是位運算符



if(a==1&&b==2)這是說既要滿足a=1也要滿足b=2



if(a==1||b==2)這是說或者滿足a=1或者要滿足b=2



而a&b或者a|b則是二進制的與或運算



&同為1時為1,否則為0



|同為0時為0,否則為1



3&5則



0011



&0101



0001



等於1
3|5則



0011



|0101



0111



等於7



&&邏輯與也叫做短路與因為只要當前項為假,它就不往後判斷了,直接認為表達式為假

||邏輯或也叫做短路或因為只要當前項為真,它也不往後判斷了,直接認為表達式為真

㈨ 打擾,JAVA中&&是邏輯運算符,表示邏輯與(and)還是短路與都是網上說的,不知道哪個是對的了。

短路與 第一個為假,後面的將不執行 直接返回假
ps:你可以寫一個來測試一下 比如if(1<2&&i++) 你看看i的值是否變了不就明白了

㈩ java短路邏輯與和短路邏輯或

額,&&是兩邊同時為真則為真,如果左邊為假,右邊不計算。 || 是只要有一邊為真 結果就為真,左邊為真,右邊不計算。

閱讀全文

與java短路邏輯相關的資料

熱點內容
config保存伺服器地址 瀏覽:317
預訂網吧座位的app叫什麼 瀏覽:416
香港伺服器主機地址 瀏覽:640
網店美工pdf 瀏覽:447
一堆文件夾怎麼弄出來 瀏覽:743
博途如何編譯硬體 瀏覽:418
fortran程序pdf 瀏覽:504
電池消耗演算法 瀏覽:394
伺服器中斷連接怎麼處理 瀏覽:222
上世紀互聯網不發達程序員很難 瀏覽:841
語音識別android開源 瀏覽:762
地埋式垃圾壓縮中轉站 瀏覽:902
apachehttpdlinux 瀏覽:944
快遞員中通app預付款是什麼 瀏覽:843
java路徑轉義 瀏覽:857
keytool加密演算法 瀏覽:131
笑臉圖案的APP相機是什麼軟體 瀏覽:249
app軟體為什麼會被下架 瀏覽:981
從內存到硬碟的命令是 瀏覽:52
程序員的爸爸們的發型 瀏覽:123