條件我在我的代碼的循環,它看起來像:C++「或」被忽略
string var = ""
while (var != "q" || var != "Q")
{
...
cin >> var;
}
它不工作,我的循環變得勢不可擋。但是,如果我我的代碼改成這樣:
while (var != "q")
或本:
while (var == "q" || var == "Q")
它`要去工作。我究竟做錯了什麼?
條件我在我的代碼的循環,它看起來像:C++「或」被忽略
string var = ""
while (var != "q" || var != "Q")
{
...
cin >> var;
}
它不工作,我的循環變得勢不可擋。但是,如果我我的代碼改成這樣:
while (var != "q")
或本:
while (var == "q" || var == "Q")
它`要去工作。我究竟做錯了什麼?
while (var != "q" || var != "Q")
寫簡單的英語,這樣說:雖然var
不等於q
或var
不等於Q
運行這個循環。
這將始終返回true,因爲var
將始終不是q
或Q
(它不能同時都是)。
您的其他條件起作用,因爲他們正在檢查正確的事情。
while (var != "q")
雖然var
不等於q
運行這個循環。
while (var == "q" || var == "Q")
雖然var
等於q
或var
等於Q
運行這個循環。
您正在查找的條件是使用and
運算符。
while(var != 'q' && var != 'Q')
雖然var
不等於q
和var
不等於Q
運行這個循環。如果var
轉到q
或Q
,循環將退出。
由於變量只能有一個值,它是總是 「不是 'q' 或 'Q'」。
var!=「q」|| var!=「Q」始終爲真。 –
當你輸入'q'時,你會得到:「q」!=「q」|| 「q」!=「Q」==> false || true ==> true,當你輸入'Q' ==> true ||時是一樣的false ==> true –
也許你的意圖要求你用'while(var!=「q」&& var!=「Q」)'? – billyhoes