亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java邏輯運算符短路

Java邏輯運算符短路

喵喔喔 2019-06-06 15:30:12
哪個集合是短路的,它到底意味著復雜的條件表達式是短路的呢?public static void main(String[] args) {   int x, y, z;   x = 10;   y = 20;   z = 30;   // T T   // T F   // F T   // F F   //SET A   boolean a = (x < z) && (x == x);   boolean b = (x < z) && (x == z);   boolean c = (x == z) && (x < z);   boolean d = (x == z) && (x > z);   //SET B       boolean aa = (x < z) & (x == x);   boolean bb = (x < z) & (x == z);   boolean cc = (x == z) & (x < z);   boolean dd = (x == z) & (x > z);}
查看完整描述

3 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

這個&&||操作人員“短路”,意思是如果沒有必要,他們不會對右手邊進行評估。

這個&|運算符,當用作邏輯運算符時,總是對雙方進行評估。

每個操作員只有一種短路情況,它們是:

  • false && ...

    -不需要知道右手是什么,結果必須是

    false

  • true || ...

    -不需要知道右手是什么,結果必須是

    true

讓我們在一個簡單的例子中比較一下這種行為:

public boolean longerThan(String input, int length) {
    return input != null && input.length() > length;}public boolean longerThan(String input, int length) {
    return input != null & input.length() > length;}

第二個版本使用非短路操作符。&會拋出一個NullPointerException如果inputnull,但是第一個版本將返回false無一例外;


查看完整回答
反對 回復 2019-06-06
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

集合A使用短路布爾運算符.


在布爾運算符的上下文中,“短路”的意思是,對于一組布爾函數b1、b2、.、bn,一旦第一個布爾值為真(X)或false(&),短路版本就會停止計算。


例如:


// 2 == 2 will never get evaluated because it is already clear from evaluating

// 1 != 1 that the result will be false.

(1 != 1) && (2 == 2)


// 2 != 2 will never get evaluated because it is already clear from evaluating

// 1 == 1 that the result will be true.

(1 == 1) || (2 != 2)


查看完整回答
反對 回復 2019-06-06
?
米脂

TA貢獻1836條經驗 獲得超3個贊

短路意味著如果第一個操作符決定最終結果,則不會檢查第二個操作符。

例如:表達式是:true\x>false

萬一發生了,我們所需要的就是一邊成為真實的人。因此,如果左手邊是真的,檢查右側就沒有意義了,因此根本不會檢查。

同樣,假與真

萬一-,我們需要雙方成為真實的人。所以如果左手邊是假的,檢查右邊沒有意義,答案必須是假的。因此,這一點根本不會被檢查。


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 751 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號