3 回答

TA貢獻1858條經(jīng)驗 獲得超8個贊
由于您的id1
和id2
不相等,因此表達式的計算結(jié)果(id != id1 || id != id2)
應(yīng)始終為真。您可能想用&&
替換||
. 然后您的代碼落在第一個循環(huán)中,導(dǎo)致未評估第二個表達式,因此沒有警告。

TA貢獻1821條經(jīng)驗 獲得超6個贊
IntelliJ 之所以沒有告訴您有關(guān)第二個的任何信息,if
是因為它檢測到您永遠無法進入第二個while
。
確實,突破第一個的唯一方法while
就是有一個例外,即使這樣,你也不會進入第二個while
。
因此,IntelliJ 無需檢查第二個內(nèi)部發(fā)生的任何事情while
。

TA貢獻1824條經(jīng)驗 獲得超8個贊
您的邏輯已關(guān)閉,并且該if語句應(yīng)該將兩個相等性檢查AND放在一起:
if (id != id1 && id != id2) {
System.out.println("Employee does not exist. Please try again.");
}
您可以通過改寫,你要這么長時間來塊作為說服自己的這個id輸入的不是要么id1或者id2,即
NOT (id = id1 || id = id2)
根據(jù)德摩根定律,NOT (p OR q)變?yōu)镹OT p AND NOT q。
編輯:第二個循環(huán)永遠不會被命中的原因是微不足道的,因為第一個循環(huán)永遠不會退出。但這里重要的是理解德摩根定律。這種類型的錯誤在這里經(jīng)常出現(xiàn)。
添加回答
舉報