在do ... while循环中使用多个条件

时间:2011-10-02 04:19:55

标签: c++

所以我正在制作一个程序,询问用户是否想要做某事。答案就像Y / N一样简单。我希望该程序能够接受大写和小写“Y”。问题是,当我输入while (answer == 'Y', answer == 'y')时,只接受小写的“Y”。如果我输入while (answer == 'y', answer == 'Y')

我做错了什么?

(更多信息:“answer”是我的“char”变量的名称,我正在使用“iostream”,“cstdlib”和“string”库)

4 个答案:

答案 0 :(得分:5)

您需要使用'logical或'运算符||

因此,您的代码将变为while (answer =='Y' || answer == 'y')

答案 1 :(得分:2)

您应该使用or(“||”)的逻辑运算符:

while( answer=='Y' || answer=='y' ){  
       //code
}

另外,FFR:

http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B

答案 2 :(得分:2)

问题是您使用comma operator而不是“或”运算符,例如逻辑或||

来自维基百科:

  

在C和C ++编程语言中,使用逗号运算符   (由令牌表示)是一个二进制运算符,用于计算其值   第一个操作数并丢弃结果,然后计算第二个操作数   操作数并返回此值(并键入)。逗号运算符有   任何C运算符的最低优先级,并充当序列点。   (重点补充)

答案 3 :(得分:2)

它的逗号运算符的属性仅返回第二个操作数(尽管它执行两个操作数)。请考虑以下代码:

int main() {
    int i=1, j=2, k=3;
    int l= (i,cout<<"print; ",j,k);
    cout << l;
}

由于逗号运算符,输出为'print; 3' 。 因此,请尝试在代码中避免使用此逗号运算符,并且如上所述,请使用逻辑(||)运算符。