基本输入 £ 无限循环
Basic input £ Indefinite looping
这是我想要运行的一个非常基本的程序。要求用户在三个变体程序之间进行选择,这些程序稍后单独出现在代码中。
我只想接受整数输入,例如值为 1、2、3、4 和 5。出于某种原因,当前程序只接受 1 输入,while 循环对非整数输入无限重复。
任何人都可以发现这两个问题,并为我提出一些解决方法吗?提前谢谢。
法典:
#include <iostream>
using namespace std;
int main() {
int programversion;
cout << "Which program version would you like to run? Basic [1], advanced [2], or advanced-variant [3]?n";
cin >> programversion;
while (programversion != (1||2||3))
{
cout << "That is not a correct input integer - please choose [1], [2] or [3]n";
cin >> programversion;
}
if (programversion == 1)
{
cout << "You chose option 1.n";
}
if (programversion == 2)
{
cout << "You chose option 2.n";
}
if (programversion == 3)
{
cout << "You chose option 3.n";
}
return 0;
}
你的状况应该是
while ( programversion < 1 || programversion > 3 )
{
...
}
while
循环保持运行的原因是,您的当前条件总是计算为 true,并且循环永远不会中断(键入 1
时除外)。 1||2||3
只是计算1
这是您的代码正确处理的唯一条件。如果要测试独立条件,则必须实际编写代码来单独测试这些条件。要么使用我上面的代码片段(检查programversion
是否在 1 和 3 的范围内),要么在 while
表达式中使用多个检查来独立测试每个可接受的值。例如:
while ( programversion != 1 && programversion != 2 && ... )
{
...
}
相关文章:
- 在这个无限循环中,当输入 0 时终止,当输入 int 范围之外的任何内容时,程序行为不正常
- 陷入输入C++的无限循环中
- 字母输入运行无限循环
- 为什么输入流无法识别 Ctrl D 并给出无限循环
- 开关大小写语句中函数中的字符串输入会导致无限循环和绕过输入
- 实现递归函数,避免由 C++ 中 include 的循环调用(没有 #pragma 一次)引起的无限循环输入
- 为什么当用户输入除整数之外的任何内容时,我的程序会无限循环输出?C++
- 输入 2 个非常基本的 C 字符串时的无限循环
- C++ 输入字符而不是 int 会导致无限循环.如何检查错误的输入
- 如何在 c++ 中从".in"格式的文件中获取输入?此代码进入无限循环,但适用于".txt"文件格式
- 为什么我的程序在输入字符时有一个无限循环
- 输入验证,需要数字,而不是字符串.代码导致无限循环
- 在等待输入时执行无限循环
- Getline 在将文件重定向到标准输入时会导致无限循环
- 检查正确的输入会导致无限循环
- 如果给出错误的输入,则无限循环
- 读取输入文件时的无限循环
- C++用户输入到字符串数组的无限循环
- 无效的 int 输入卡在无限循环中
- 无限循环,同时在 STACK 中输入不同的数据类型值