switch 语句中的输入错误 如何循环回第一种情况?C++

wrong entry in switch statement how to loop back to the first case? c++

本文关键字:一种 C++ 情况 语句 输入 错误 switch 何循环 循环      更新时间:2023-10-16

这是我的代码

  int intNumber1, intNumber2, intResult, operation;
  cout << "enter two integer values: ";
  cin >> intNumber1 >> intNumber2;
  cout << "enter (1) for addition, or (2) for subtraction" << endl;
  cin >> operation;
  switch (operation)
  {
        case '1':
              intResult = intNumber1 + intNumber2;
             cout << intResult << endl ;
              break;
        case '2':
              intResult = intNumber1 - intNumber2;
              cout << intResult << endl; 
              break;
        default:
              cout << "wrong entry please enter a valid choice - 1 for addition, or 2 for subtraction. " << endl;
              cin >> operation;
              break;

  }

  return 0;

所以我只允许使用 if/switch 语句,而不能使用任何类型的循环。有没有办法让程序重新启动并让用户选择操作?

所以基本上我所做的很简单。我创建了一个函数来保存您的开关盒。基本上,这样做的作用是,当您的主函数运行时,它将运行 userChoice 函数,该函数显示提示并允许用户输入选项。如果用户输入 1 或 2 以外的任何内容,开关将变为默认值,显示错误消息,并再次运行函数 userChoice。这不会循环回第一种情况并询问用户他们想要的运算符,而是再次调用函数 userChoice,这反过来又类似于重新启动程序或在没有循环的情况下循环它并再次提示用户输入。

包括

#include <iostream>
using namespace std;
void userChoice(); //Function prototype
int main() {
userChoice(); //Function for menu prompts and user entry
return 0;
}
//Function I created that holds your whole program
void userChoice() {
int intNumber1, intNumber2, intResult, operation;
cout << "enter two integer values: ";
cin >> intNumber1 >> intNumber2;
cout << "enter (1) for addition, or (2) for subtraction" << endl;
cin >> operation;
switch (operation)
{
case 1:
    intResult = intNumber1 + intNumber2;
    cout << intResult << endl;
    break;
case 2:
    intResult = intNumber1 - intNumber2;
    cout << intResult << endl;
    break;
default:
    cout << "wrong entry. " << 
    endl << "Restarting program.";
    userChoice(); //Calls/restarts the function
    break;
}
}

您可以使用do{}while()来检查条件 - 如果您不允许使用它,您可以使用label并在默认值中使用goto,但要明智地使用它。另一个创意是在函数内部进行切换。调用该函数,开关将触发 - 然后如果输入错误,请再次调用该函数 - void 函数应该适合您在上面给出的代码中尝试执行的操作。我希望这个答案有所帮助!

相关文章: