是否可以为一个循环设置多个条件

Is it possible to set multiple conditions for a loop?

本文关键字:循环 一个 设置 条件 是否      更新时间:2023-10-16

是否可以为循环设置多个条件?在这种情况下,特别是do…while循环。我试图回顾一堆我从未练习过的旧内容,因为我天真地认为阅读示例代码已经足够好了,这样我就可以获得一些经验,但我所尝试的一切都不起作用。它要么无限期地循环,要么只考虑一个条件并与另一个条件保持循环提前感谢你的帮助

#include <iostream>
using namespace std;
int main()
{
int input;
cout<<"What species do you belong to?"<<endl;
cout<<"1 - Humann2 - Othern"<<endl;
do
{
cin>>input;
switch(input)
{
case 1:
{
cout<<"OK"<<endl;
break;
}
case 2:
{
cout<<"what"<<endl;
break;
}
default:
{
cout<<"INVALID INPUTn"<<endl;
break;
}
}
}
while(input!=1||input!=2);
}

您可以使用任何计算结果为true/false的表达式来创建循环条件,对可以进行的比较次数没有硬性限制。

但是,由于一个变量只能包含一个值,因此您的代码使用始终返回true的"或"门来检查同一个变量的两个不同值。如果input1,它就不能是2,如果是2,它就不可能是1,所以表达式将始终是true,这是一个无限循环。

也许您想使用&&("answers"门(而不是||

需要记住的一个关键概念是,输入变量一次只能有一个值。在您的代码的情况下,您似乎想要:

如果input的值不为1,则
  • 继续循环,并且
  • 如果CCD_ 11的值不是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 INPUTn"<<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);

我认为这里需要的是一个语句'&amp;'而不是或"||"。例如,当您输入1时,条件输入!=2为True,因此循环继续。使用和语句输入!=1&amp;输入!=2,一旦输入为1或2,循环将取消。但我很困惑,如果你不想让循环无限迭代,循环的意义是什么?