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 明白了吧O(∩_∩)O~ 補充: && 邏輯與 也叫做短路與 因為只要當前項為假,它就不往後判斷了,直接認為表達式為假|| 邏輯或 也叫做短路或 因為只要當前項為真,它也不往後判斷了,直接認為表達式為真
2. java裡面的短路是什麼意思
運算符書上說:「在java中的邏輯與和邏輯或運算符採用「短路」方法進行計算,先求出運算符左邊的表達式的值,對或運算如果為true,則整個表達式的結果為true,不必對運算符右邊的表達式進行計算。同樣,對與運算,如果左邊的表達式的值為false,則不必對右邊的表達式的值進行計算,整個表達式的值為false,」
3. java語言中關於或與短路或的問題。
換成邏輯運算符後,x++==1
是真,所以運算符後面的運算式不再執行,所以y=1
4. java中有類短路操作符&&與||,其實他們的短路作用有啥實際作用啊
呵呵呵 沒有前邊的就夠不成短路了啊 就像是與運算(&&) 如果只判斷一半的話那後半邊就沒意義了 這是在短路的情況下 不短路的情況下怎麼辦呢 有這個運演算法則是有他得道理的 意義就在與java 里邊解決問題的方式是認為定義的 有方法就必然有bug
5. JAVA中的邏輯運算符!
三、邏輯運算符:
&(與)
|(或)
!(反)
&:當兩邊同時為真時,結果為真,否則為假
|
:當兩邊有一邊為真時,結果為真,否則為假
!
:真值變假值,假值變真值
學JAVA也有不短的時間了,現在開發也有1年多了,不過你說的那些基礎知識我也記不得。我一開始也一樣害怕,學了就忘記了
不過告訴你,JAVA不是背出來的,是邏輯。
記憶方面,你只需要知道到哪裡去查閱。
這就是為什麼有那麼多API
reference等的原因啊,因為大家都記不得。
6. java語言中&&與& ||與|有什麼區別
&& 邏輯運算and,當兩個條件都為真的時候才為真。
||邏輯運算or,只要有一個條件為真就為真。
而& 和 | 屬於位運算。
邏輯運算與位運算最大的區別在於
邏輯運算支持短路運算,
而位運算不支持短路運算。
短路運算就是 位運算if(條件1 & 條件2){}
當第一個條件不滿足的時候還會判斷條件2,
但是邏輯運算if(條件1 &&條件2){}
當第一個條件不滿足的時候不會判斷條件2.
邏輯|| 跟位運算| 同上。
我能說的也就這么多 - -
7. JAVA邏輯運算符短路的疑問!!!!!求達人幫忙
短路問題:
&&(和) 運算符
|| (或) 運算符
&& 運算符的優先順序高於 || 運算符
(你的表達式寫的不規范哦,最好是加上小括弧(),雖然你這里達到了同樣的效果)
假設兩個條件: P Q
&& 運算||運算
P TTFFPTTFF
Q TFTFQTFTF
TFFFTTTF
現在來看我們的 if 條件
flag = (x>='a' && x<='z') || (x>='A' && x<='Z')
因為 有 小括弧 () 所以優先順序最高
先看 || 運算 前面一段
即: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,這里也就發生了短路。
希望您能明白(思路有點亂)!
8. java短路邏輯與和短路邏輯或
額,&&是兩邊同時為真則為真,如果左邊為假,右邊不計算。 || 是只要有一邊為真 結果就為真,左邊為真,右邊不計算。
9. java 位運算符和邏輯運算符,有什麼區別,&和&&
true
=
1
false
=
0
再看下面這段文字
一、邏輯運算符:
包括:1。&&邏輯與
2。||邏輯或
3。!邏輯非
邏輯運算符用於對包含關系運算符的表達式進行合並或取非
對於使用邏輯運算符的表達式,返回0表示「假」,返回1表示「真」。關於邏輯運算符的解釋
請注意:任何使用兩個字元做符號的運算符,兩字元之間不應有空格,即將==寫成=
=是錯誤的。
假設一個程序在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關系運算符和邏輯運算符「與」來寫這個
條件的代碼。用&&表示「與」運算符,該條件代碼如下:
(a<10)
&&
(b==7);
類似地,「或」是用於檢查兩個條件中是否有一個為真的運算符。它由兩個連續的管道符號(||)表示。如果上例
改為:如果任一語句為真,則程序需執行某些操作,則條件代碼如下:
(a<10)
||
(b==7);
第三個邏輯運算符「非」用一個感嘆號(!)表示。這個運算符對表達式的真值取反。例如,如果變數s小於10,程序
程序需執行某些操作,則條件代碼如下:
(s<10)
或
(!(s>=10))
//s不大於等於10
關系運算符和邏輯運算符的優先順序一般都低於算術運算符。例如,5>4+3的計算與5>(4+3)運算符是一樣的,即
先計算4+3,再執行關系運算。此表達示的結果為「假」,即,將返回0。
下面的語句
printf("%d",5>4+3);
將輸出
0
可以總結為:&&的結果是真真為真。||的結果是假假為假。
二、位運算符:
包括:1。&位與符
2。|位或符
3。^位異或符
4。~位取反符
以操作數12為例。位運算符將數字12視為1100。位運算符將操作數視為位而不是數值。數值
可以是任意進制的:十進制、八進制或十六進制。位運算符則將操作數轉化為二進制,並相應地返回1或0。
位運算符將數字視為二進制值,並按位進行相應運算,運算完成後再重新轉換為數字。例如:
表達式10&15表示(1010
&
1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結果也是1
表達式10|15表示(1010
|
1111),它將返回表示1111的值15。假假得假。全零得零。
表達式10^15表示(1010
^
1111),
它將返回表示0101的值5。此時是同性相斥,相同的就為假。
表達式~10表示(~1010),它將返回表示0101的值
-11。此號好理解,按位取反