所以我正在制作一个程序,询问用户是否想要做某事。答案就像Y / N一样简单。我希望该程序能够接受大写和小写“Y”。问题是,当我输入while (answer == 'Y', answer == 'y')
时,只接受小写的“Y”。如果我输入while (answer == 'y', answer == 'Y')
我做错了什么?
(更多信息:“answer”是我的“char”变量的名称,我正在使用“iostream”,“cstdlib”和“string”库)
答案 0 :(得分:5)
您需要使用'logical或'运算符||
因此,您的代码将变为while (answer =='Y' || answer == 'y')
答案 1 :(得分:2)
您应该使用or
(“||”)的逻辑运算符:
while( answer=='Y' || answer=='y' ){
//code
}
另外,FFR:
答案 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' 。
因此,请尝试在代码中避免使用此逗号运算符,并且如上所述,请使用逻辑(||
)运算符。