3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
它必須if(c!='o' && c!='x')
代替if(c!='o' || c!='x')
。如果使用or
運(yùn)算符,則布爾表達(dá)式將始終為true。

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
這種情況(c != 'o' || c != 'x')
永遠(yuǎn)不會(huì)是假的。如果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'
)......”

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
為什么我的
c != 'o' || c != 'x'
病情總是如此?
該表達(dá)式使用邏輯OR
運(yùn)算符(||
)組合了兩個(gè)子表達(dá)式。表達(dá)式true
是否至少有一個(gè)子表達(dá)式true
。為了成為false
它,它連接的兩個(gè)子表達(dá)式必須是false
。
子表達(dá)式是c != 'o'
和c != 'x'
。
第一子表達(dá)c != 'o'
是false
時(shí)c == 'o'
。第二個(gè)相同; 它是false
什么時(shí)候c == 'x'
。
請(qǐng)注意,他們不能false
在同一時(shí)間,因?yàn)?code>c不能'o'
與'x'
在同一時(shí)間。
添加回答
舉報(bào)