如何使程序永远循环,直到满足 switch 语句中的特定情况
How to make a program loop forever until a certain case in a switch statement is met?
除非用户在switch语句中选择"C",否则如何使该程序永远循环?我自己尝试了几件事,似乎没有奏效,我不确定如何进行,因为我仍然是C++的初学者。谁能帮忙?如果您需要其他信息,请告诉我。
#include <iostream>
using namespace std;
int main()
{
cout << "Hello user, what do you want to do: " << endl
<< "A. Display A Message" << endl
<< "B. Perform A Calculation" << endl
<< "C. Exit The Program" << endl;
int result = 80 + 10;
char answer;
cin >> answer;
switch (answer)
{
case 'A':
cout << "Welcome to C++!" << endl;
break;
case 'B':
cout << 80 << " + " << 10 << " = " << result << endl;
break;
case 'C':
cout << "Goodbye...." << endl;
break;
return 0;
}
}
(目前无法访问您的return 0;
语句。
最简单的方法是使用for(;;)
无限循环习惯用语,并在"C"的情况下使用return
代替break
:
for (;;){
char answer;
cin >> answer;
switch (answer){
case 'A':
cout << "Welcome to C++!" << endl;
break;
case 'B':
cout << 80 << " + " << 10 << " = " << result << endl;
break;
case 'C':
cout << "Goodbye...." << endl;
return 0;
}
}
break
语句将程序控制从switch
中移除,而不是将循环中移除。
我们倾向于使用 for(;;)
而不是 while(true)
等替代方案,因为许多编译器在没有警告的情况下接受前者。
bool finished=false;
while (!finished)
{
switch (something)
{
case foo:
finished = true; break;
...
}
}
或者实现相同目标的十几种方法之一;)
相关文章:
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 如何将 if else 语句重写为 switch 语句
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- Switch 语句(字符串)一直选择默认值,除非其为零
- C++ switch 语句:对案例进行分组,并针对每个案例给出特定的说明
- 任意大小的 constexpr 数组是否可以用作 switch 语句中的案例?
- 为什么在 C/C++ 中交织 switch/for/if 语句是有效的?
- 默认标签显然在 switch 语句中不起作用
- C++如何在 switch 语句中放置两个参数
- 如何在 c++ 中从 switch 语句返回不同类型的变量
- switch-case语句如何在Arduino/C++中工作
- 在编译时自动生成用于稀疏数组索引的switch语句
- 代码样式:在 switch/if 语句的分支中重用控件表达式或控制变量
- C++ Switch 语句中的数学运算
- 变量不能在 lambda 中隐式捕获,并且没有使用 switch 语句指定捕获默认值
- 在任何案例之前,在 switch 语句中的使用声明是否合法?
- 有没有办法缩短长 switch() 语句?
- 使用 switch 语句将不同的函数作为类属性分配 C++
- 为什么我的 switch 语句没有响应一半的情况?
- 没有if或if相关语句(switch、while、for、?:等)的可视化c++递归