如何用开关中断while循环
How do I break from a while loop with a switch?
>我试图从开关语句中的 while 循环中断,但它不起作用。我得到一个无限循环。为什么?
int main()
{
int n;
while (std::cin >> n)
{
switch (n)
{
case 4:
break;
break;
default:
std::cout << "Incorrect";
break;
}
}
}
你会得到一个无限循环,因为这不是break
的工作方式。执行第一个break
后,退出 switch
语句,第二个break
永远不会执行。您必须找到另一种退出外部控制结构的方法。例如,在 switch
语句中设置一个标志,然后在末尾或在循环条件中检查该标志。
while (std::cin >> n)
{
bool should_continue = true;
switch (n)
{
case 4:
should_continue = false;
break;
default:
std::cout << "Incorrect";
break;
}
if (!should_continue)
break;
}
switch
内的break
会断开开关。执行以下操作:
while (std::cin >> n)
{
if(n == 4)
break;
switch (n)
{
//...Other case labels
default:
std::cout << "Incorrect";
break;
}
}
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- while循环中while循环的时间复杂度是多少
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 为什么我不能在 while 循环中创建线程?
- 退出简单while循环时出现问题
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 嵌套While循环不起作用(C++问题)
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 使用 GMP 的 while 循环出现问题
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 为什么在 while 循环中返回表达式不起作用
- 如何使用 do while 循环确定最高值和最低值
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 用于在 C++ 中使用 while 循环查找下一个素数的简单函数
- OpenCV QT,显示视频的帧(不使用while循环)
- 在 while 循环中使用 pow() 函数 C++
- C++ 制作/命名不初始化的向量(在 while 循环中)
- std::getline没有在while循环中重新请求用户输入