这是我的代码。如果用户键入Yes或yes,我希望我的if语句有效。当我拿出||和“是”我的程序工作正常,当用户输入“是”时,它可以工作。我想让我的程序更好,并且还有它,以便当他们输入“是”工作时。有人可以帮我解决这个问题吗?谢谢!
{
cout<<"Would you like to begin?\n";
cin>>answer;
if (answer=="Yes" || "yes") {
continue_1=true;
google=false;
}
else {
if (answer=="No" || "no" ) {
cout <<endl<< "have a nice day\n";
google= false;
return 0;
}
答案 0 :(得分:4)
您正在执行或在字符串上,而不是在查询上 - 您想要:
if (answer=="No" || answer=="no" ) {
虽然你可以将字符串转换为小写然后将其与“no”进行比较,然后将其处理为“No”,“NO”和“no”,以便更加通用。
相当常见的替代方法是检查字符串中的第一个字符是N还是n。这也可以选择Nope等等。
答案 1 :(得分:2)
if (answer=="Yes" || answer == "yes")
您需要在两项检查中使用==
。不幸的是,它不起作用
答案 2 :(得分:1)
一个人从哪里开始?
优先顺序 - 请参阅http://en.cppreference.com/w/cpp/language/operator_precedence 字符串比较=见http://www.cplusplus.com/reference/cstring/strcmp/
了解指针
答案 3 :(得分:0)
正确的语法是:
if (answer=="Yes" || answer=="yes")
它不携带任何东西,OR和AND可以用来混合不同的值。像这样:
if (answer=="Yes" || otherAnswer=="no")
答案 4 :(得分:0)
我宁愿用更少的分支来做到这一点:
cout<<"Would you like to begin?\n";
cin>>answer;
if (answer== "No" || answer== "no")
return 0;
if (answer!= "Yes" && answer!= "yes" )
return error; // only answer with yes or no
// here, we know that the answer is yes