提问人:David Garza 提问时间:11/1/2022 最后编辑:Remy LebeauDavid Garza 更新时间:11/1/2022 访问量:83
还是操作员没有按应有的方式操作?C++ [已关闭]
Or operator not operating as it should ? c++ [closed]
问:
我根本不明白错误是什么。一旦我使语句包含运算符,我的程序就不会接受任何正确的输入。相反,即使我输入或 .if
or
y
n
(如果这很简单,也很抱歉,我是编程新手)
我尝试使用 ,但它仍然对我不起作用。else if
#include <iostream>
using namespace std;
int main()
{
char ans;
bool correct = true;
while(correct){
cout << "Do you like ice cream? (y/n) ";
cin >> ans;
if(ans != 'y' || ans != 'n')
{
cout << "wrong\n";
}
else
{
correct = false;
}
}
cout << "Thanks for your input!" << endl;
return 0;
}
答:
1赞
Ilya
11/1/2022
#1
if(ans != 'y' || ans != 'n')
此结果始终为 True。在此方案中,应使用 && 而不是 ||。
试着在脑海中模拟:
ans = 'n' 将第一部分的计算结果为 True
ans = 'y' 将第二部分计算为 True
ans = 'potato' 将两个部分的计算结果都计算为 True
评论
(ans != 'y' || ans != 'n')
无论值是什么,始终为 true。如果 ans 不等于 。如果 is it 不等于 if it's any other character, it not equal to both 和ans
y
n
ans
n
y
n
y
&&
||
if(ans != 'y' && ans != 'n')
ans
y
ans
n
wrong
correct
do..while(true)
break