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

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

為什么我的c!='o'|| c!='x'條件總是如此?

為什么我的c!='o'|| c!='x'條件總是如此?

為什么我的c!='o'|| c!='x'條件總是如此?我有這個循環語句,我將使用類似C的語法表達(C,C ++,Java,JavaScript,PHP等都使用類似的語法):while (c != 'o' || c != 'x') {     c = getANewValue();}我想讓它一直運行,直到我得到一個'o'或'x',但它永遠不會退出,即使c是'o'或'x'。為什么不?我也嘗試過使用if:if (c != 'o' || c != 'x') {     // Show an error saying it must be either 'o' or 'x'}但這也總是顯示錯誤信息,即使c是'o'或'x'。為什么?
查看完整描述

3 回答

?
暮色呼如

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

它必須if(c!='o' && c!='x')代替if(c!='o' || c!='x')。如果使用or運算符,則布爾表達式將始終為true。


查看完整回答
反對 回復 2019-08-28
?
白板的微信

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

這種情況(c != 'o' || c != 'x')永遠不會是假的。如果c'o',則為c != 'x'真,并滿足OR條件。如果c'x',則為c != 'o'真,并滿足OR條件。

你想要&&(AND),而不是||(OR):

while (c != 'o' && c != 'x') {
    // ...}

“雖然c不是'o'c不是''x'......”(例如,它們都不是)。

或者使用De Morgan的法律,包括:

while (!(c == 'o' || c == 'x')) {
    // ...}

“雖然這是不正確的(c'o'c'x')......”


查看完整回答
反對 回復 2019-08-28
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

為什么我的c != 'o' || c != 'x'病情總是如此?

該表達式使用邏輯OR運算符(||)組合了兩個子表達式。表達式true是否至少有一個子表達式true。為了成為false它,它連接的兩個子表達式必須是false。

子表達式是c != 'o'c != 'x'。

第一子表達c != 'o'falsec == 'o'。第二個相同; 它是false什么時候c == 'x'。

請注意,他們不能false在同一時間,因為c不能'o''x'在同一時間。


查看完整回答
反對 回復 2019-08-28
  • 3 回答
  • 0 關注
  • 584 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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