如何使程序永远循环,直到满足 switch 语句中的特定情况

How to make a program loop forever until a certain case in a switch statement is met?

本文关键字:语句 switch 情况 满足 程序 何使 永远 循环      更新时间:2023-10-16

除非用户在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;
      ...
     }
   }

或者实现相同目标的十几种方法之一;)