因此,我正在製作一個程序,詢問用戶是否想要做某件事。答案與Y/N一樣簡單。我希望該計劃能夠接受大寫和小寫字母「Y」。問題是,當我輸入while (answer == 'Y', answer == 'y')
時,只接受小寫字母「Y」。如果我輸入while (answer == 'y', answer == 'Y')
在do ... while循環中使用多個條件
我在做什麼錯?
(更多信息:「答案」是我的「字符」變量的名稱,而我使用「的iostream」,「cstdlib」和「串」庫)
因此,我正在製作一個程序,詢問用戶是否想要做某件事。答案與Y/N一樣簡單。我希望該計劃能夠接受大寫和小寫字母「Y」。問題是,當我輸入while (answer == 'Y', answer == 'y')
時,只接受小寫字母「Y」。如果我輸入while (answer == 'y', answer == 'Y')
在do ... while循環中使用多個條件
我在做什麼錯?
(更多信息:「答案」是我的「字符」變量的名稱,而我使用「的iostream」,「cstdlib」和「串」庫)
您需要使用'邏輯或' 運算符||
所以,你的代碼將成爲while (answer =='Y' || answer == 'y')
謝謝先生。我真的不知道那裏是否存在一個合乎邏輯的'或'運算符。毋庸置疑,事情現在起作用。盡我所能給你答案。 – h3half
您應該使用邏輯運算符爲or
( 「||」):
while(answer=='Y' || answer=='y'){
//code
}
此外,FFR:
的問題是,你正在使用的comma operator而不是 「或」 運算符,如邏輯,或者||
。
維基百科:
在C和C++編程語言中,逗號操作者 (令牌表示,)是評價其 第一個操作數,並丟棄結果的二進制運算符,然後評估第二個 操作數並返回此值(和類型)。逗號運算符具有任何C運算符的最低優先級 ,並充當序列點。 (強調)
它的逗號操作符的財產只返回第二個操作數(它執行兩個操作數雖然)。考慮下面的代碼:
int main() {
int i=1, j=2, k=3;
int l= (i,cout<<"print; ",j,k);
cout << l;
}
由於逗號運算符,輸出是'print; 3' 。 因此,請儘量避免在您的代碼中使用逗號運算符,並且如上所述,請使用邏輯運算符(||
)。
只是好奇,爲什麼你甚至會認爲逗號可能以這種方式工作?是否還有另一種語言? –
我很確定我在Java中看到了類似的東西。這是前一陣子,我沒有最好的記憶,所以這是任何人的猜測。 – h3half
@DonReba也許是因爲你可以在c中做'for(i = 0,j = 0; i + j <8; i ++,j ++)'' – kratenko