2017-10-04 65 views
1

考虑到它是一个开关,我该如何去循环选项1和2?编程新手,解决这个问题有困难。任何帮助将非常感激!C++帮助:循环和开关

#include <iostream> 
using namespace std; 

int main() 
{ 
    int userOption; 

    cout << "Hello user, what would you like to do?" << endl; 
    cout << "Option 1: Display a message" << endl; 
    cout << "Option 2: Perform a calculation" << endl; 
    cout << "Option 3: Exit program" << endl; 
    cin >> userOption; 

     switch (userOption) 
     { 
      char op; 
      int num1, num2; 

     case 1: 
      cout << "Welcome user!" << endl; 
      break; 
     case 2: 
      cout << "Enter + for addition, - for subtraction, * for multiplication or/for division: "; 
      cin >> op; 
      cout << "Enter two numbers: "; 
      cin >> num1 >> num2; 
      if (op == '+') 
       cout << num1+num2 << endl; 
      else if (op == '-') 
       cout << num1-num2 << endl; 
      else if (op == '*') 
       cout << num1*num2 << endl; 
      else if (op == '/') 
       cout << num1/num2 << endl; 
      break; 
     case 3: 
      cout << "Goodbye!" << endl; 
      return 0; 
      break; 
     default: 
      cout << "Please enter valid option!" << endl; 

     } 
    return 0; 
} 
+1

您是否尝试过在一个while循环包围你的代码? – frslm

+0

您有要循环的案例1和2以及退出程序的案例3。如果用循环环绕整个菜单,则1和2将循环,​​3将仍然退出程序。 – user4581301

+0

我会在哪里插入循环?在哪些声明之前? – Fernando

回答

0

使用while循环覆盖cinswitch案件。您可以使用类似下面使用一个额外的变量bContinue的,这将决定如何长时间继续循环:

int main() 
{ 
    int userOption; 

    cout << "Hello user, what would you like to do?" << endl; 
    cout << "Option 1: Display a message" << endl; 
    cout << "Option 2: Perform a calculation" << endl; 
    cout << "Option 3: Exit program" << endl; 
    bool bContinue = true; 
    while(bContinue) 
    { 
     cin >> userOption; 

     switch (userOption) 
     { 
      char op; 
      int num1, num2; 

     case 1: 
      cout << "Welcome user!" << endl; 
      break; 
     case 2: 
      cout << "Enter + for addition, - for subtraction, * for multiplication or/for division: "; 
      cin >> op; 
      cout << "Enter two numbers: "; 
      cin >> num1 >> num2; 
      if (op == '+') 
       cout << num1+num2 << endl; 
      else if (op == '-') 
       cout << num1-num2 << endl; 
      else if (op == '*') 
       cout << num1*num2 << endl; 
      else if (op == '/') 
       cout << num1/num2 << endl; 
      break; 
     case 3: 
      cout << "Goodbye!" << endl; 
      bContinue = false; 
      break; 
     default: 
      cout << "Please enter valid option!" << endl; 
     } 
    } 
    return 0; 
} 
0

在简单,你可以使用这样的事情:

unsigned int selection = 25; 
// Print menu and input selection 
while (selection != 3) 
{ 
// Do stuff 
    // Print menu and input selection 
} 
0

使用while循环创建一个新变量,但重新格式化一些代码,以便在循环开始时用户选项保持显示。

cout << "Hello user, what would you like to do?" << endl; 

bool bContinue = true; 
while(bContinue) 
{ 
    cout << "Option 1: Display a message" << endl; 
    cout << "Option 2: Perform a calculation" << endl; 
    cout << "Option 3: Exit program" << endl; 

    cin >> userOption; 

    switch (userOption) 
    { 
     char op; 
     int num1, num2; 

    case 1: 
     cout << "Welcome user!" << endl; 
     break; 
    case 2: 
     cout << "Enter + for addition, - for subtraction, * for multiplication or/for division: "; 
     cin >> op; 
     cout << "Enter two numbers: "; 
     cin >> num1 >> num2; 
     if (op == '+') 
      cout << num1+num2 << endl; 
     else if (op == '-') 
      cout << num1-num2 << endl; 
     else if (op == '*') 
      cout << num1*num2 << endl; 
     else if (op == '/') 
      cout << num1/num2 << endl; 
     break; 
    case 3: 
     cout << "Goodbye!" << endl; 
     bContinue = false; 
     break; 
    default: 
     cout << "Please enter valid option!" << endl; 
    } 
} 
return 0; 

This wi会使得程序看起来更好的用户

0

使用do-while循环,它就会停止userOption将等于3,因此它会继续,而userOption循环比3种不同的,在代码userOption != 3

示例代码:

#include <iostream> 
using namespace std; 

int main() 
{ 
    int userOption; 

    cout << "Hello user, what would you like to do?" << endl; 
    do { 
     cout << "Option 1: Display a message" << endl; 
     cout << "Option 2: Perform a calculation" << endl; 
     cout << "Option 3: Exit program" << endl; 
     cin >> userOption; 

     switch (userOption) 
     { 
      char op; 
      int num1, num2; 

      case 1: 
       cout << "Welcome user!" << endl; 
       break; 
      case 2: 
       cout << "Enter + for addition, - for subtraction, * for multiplication or/for division: "; 
       cin >> op; 
       cout << "Enter two numbers: "; 
       cin >> num1 >> num2; 
       if (op == '+') 
       cout << num1+num2 << endl; 
       else if (op == '-') 
        cout << num1-num2 << endl; 
       else if (op == '*') 
        cout << num1*num2 << endl; 
       else if (op == '/') 
        cout << num1/num2 << endl; 
       break; 
      case 3: 
       cout << "Goodbye!" << endl; 
       break; 
      default: 
       cout << "Please enter valid option!" << endl; 

     } 
    } while(userOption != 3); 
    return 0; 
} 

输出:

Hello user, what would you like to do? 
Option 1: Display a message 
Option 2: Perform a calculation 
Option 3: Exit program 
2 
Enter + for addition, - for subtraction, * for multiplication or/for division: 
+ 
Enter two numbers: 
1 
1 
2 
Option 1: Display a message 
Option 2: Perform a calculation 
Option 3: Exit program 
3 
Goodbye!