2016-07-16 70 views
0

我總是得到一些像這樣的表達:如何讓這個邏輯表達式更簡單?

while(choice != "left" || choice != "right" || choice != "up" || choice != "down") 

有說這更簡單的方法嗎?

+0

這languge是什麼?像這樣的解決方案看起來更好:while(選擇不在[「左」,「右」,「上」,「下」]) – x82

回答

2

這段時間的句子不是一個好主意。它總是迴歸真實。您的意思是

而(選擇!= 「左」 & &選擇!= 「右」 & &選擇!= 「向上」 & &選擇!= 「向下」)¿

如果沒有,喲能簡化爲,而(真):)

+0

你錯過了一些觀點。如果值不在列表中,它將不會進入循環。而(真的)總是進入。 – x82

+0

啊,其實我錯過了這一點。當然,它總是迴歸真實。 :)邏輯錯了。 – x82

+0

Hehehe肯定的,但是對於他所問的實際問題以及取決於語言的問題,您的答案是最準確的。 – Charles

0

你可以做這樣的事情:

var isOneOf = function isOneOf(matches, givenItem) { 
    return matches.some(function (match) { 
     return match === givenItem; 
    }); 
}; 

while (!isOneOf(['left', 'right', 'up', 'down'], choice)) { 

    // ...continue 

}