是否可以为一个循环设置多个条件
Is it possible to set multiple conditions for a loop?
是否可以为循环设置多个条件?在这种情况下,特别是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的"或"门来检查同一个变量的两个不同值。如果input
是1
,它就不能是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);
我认为这里需要的是一个语句'&;'而不是或"||"。例如,当您输入1时,条件输入!=2为True,因此循环继续。使用和语句输入!=1&;输入!=2,一旦输入为1或2,循环将取消。但我很困惑,如果你不想让循环无限迭代,循环的意义是什么?
相关文章:
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- C++-字符串是否包含一个带有简单循环的单词
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 使用一个循环与两个循环
- 用于在 C++ 中使用 while 循环查找下一个素数的简单函数
- 使用一个 for 循环如何迭代和测试迭代器值?
- 我正在尝试创建一个菜单,但我的代码一直在循环
- 转到基于范围的 for 循环中的下一个迭代器
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 如何循环 n 次,在 xml 文件中每个循环一个级别
- 初始化时 num 的哪个值会给这个嵌套循环一个"true"输出?
- 两次相同的 for 循环:一个编译,另一个不编译
- 如何在C 中循环一个语句
- 循环一个级数
- 如何在c++中循环一个函数
- 循环一个精灵以显示不止一次
- C++循环一个菜单,直到选择了所有选项
- QT:如何每秒循环一个方法?C++
- 循环一个mpl::map