C++ 是否可以为循环设置多个条件?
是否可以为循环设置多个条件?在本例中,特别是do…while循环。我试图回顾一些我从未练习过的旧内容,因为我天真地认为阅读示例代码已经足够好了,这样我可以获得一些经验,但我所尝试的一切都不起作用。它要么结束无限循环,要么只考虑一个条件,并保持与另一个循环。提前谢谢你的帮助C++ 是否可以为循环设置多个条件?,c++,loops,do-while,C++,Loops,Do While,是否可以为循环设置多个条件?在本例中,特别是do…while循环。我试图回顾一些我从未练习过的旧内容,因为我天真地认为阅读示例代码已经足够好了,这样我可以获得一些经验,但我所尝试的一切都不起作用。它要么结束无限循环,要么只考虑一个条件,并保持与另一个循环。提前谢谢你的帮助 需要记住的一个关键概念是,输入变量一次只能有一个值。对于您的代码,您似乎希望: 如果输入值不是1,则继续循环,并且 如果输入值不是2,则继续循环, 在任何其他情况下,终止循环 要继续循环上述两种情况,可以组合逻辑运算符来实现这
需要记住的一个关键概念是,输入变量一次只能有一个值。对于您的代码,您似乎希望: 如果输入值不是1,则继续循环,并且 如果输入值不是2,则继续循环, 在任何其他情况下,终止循环 要继续循环上述两种情况,可以组合逻辑运算符来实现这一点 具体来说,您可以使用逻辑运算符!=和&&也就是说: 输入既不是1也不是2时继续循环 也就是说: 当输入不是1且不是2时继续循环 这可以通过如下更新代码中的循环条件来实现:
do {
cin>>input;
switch(input)
{
case 1:
{
cout<<"OK"<<endl;
break;
}
case 2:
{
cout<<"what"<<endl;
break;
}
default:
{
cout<<"INVALID INPUT\n"<<endl;
break;
}
}
// Only allow the loop to continue if input is something other than 1
// or 2, ie not 1 and not 2
} while(input!=1 && input!=2);
您可以使用计算结果为true/false的任何表达式创建循环条件,对可以在其中进行的比较数量没有硬性限制 但是,您的代码正在使用“或”门检查同一变量的两个不同值,该门将始终返回true,因为一个变量只能包含一个值。如果输入为1,则不可能为2,如果输入为2,则不可能为1,因此表达式将始终为真,这是一个无限循环
也许你想用&&“and”和“gate”来代替| |。我想你在这里需要的是和语句“&&”来代替或“| |”。例如,输入1时,条件输入!=2为真,因此循环将继续。使用和语句输入!=1&&input!=2,一旦输入为1或2,循环将取消。但我很困惑,如果您不希望循环进行不确定的迭代,那么循环的意义何在?input=1 | |输入=2始终为真。输入总是不同于1或不同于2。让我们看看:如果是0,那么两者都是。如果它是1,那么它与2不同。如果是2,那么它与1不同。您可能想要&,而不是| |。输入!=1&&input!=此外,为了防御,请考虑初始化int输入=0;好吧,那就解决了。。我现在觉得自己很笨,哈哈,我想我也需要重新考虑一下条件——非常感谢,这是一个很大的帮助。在发布问题的几秒钟内,我就想测试几年前在一个毫无价值的脚本中学到的一些知识,不管怎样,我很快就会删除这个脚本——我自己的测试失败了,哈哈。谢谢你,这绝对是我想要的答案。我不得不说,我已经喜欢这个社区了。谢谢你,我一提出问题就得到了回答,并对我是如何和为什么搞砸的进行了充分的解释。再一次感谢你们的帮助,这里的每个人都对我表示欢迎,如果你们觉得有帮助的话,请考虑回答这个问题:
do {
cin>>input;
switch(input)
{
case 1:
{
cout<<"OK"<<endl;
break;
}
case 2:
{
cout<<"what"<<endl;
break;
}
default:
{
cout<<"INVALID INPUT\n"<<endl;
break;
}
}
// Only allow the loop to continue if input is something other than 1
// or 2, ie not 1 and not 2
} while(input!=1 && input!=2);