2015-09-15 6 views
0

В этой программе все варианты, отличные от 0 до 4, являются недействительными, поэтому пользователю снова и снова предлагается его выбор. Затем, когда введен выбор «1», программа выполнит добавление двух чисел. Поэтому он будет продолжать запрашивать два числа (x и y), а затем распечатывать результат вычисления. Затем пользователь может выбрать другой расчет. Пока пользователь не выбирает вариант «5» для выхода из программы, программа будет продолжать выполнять разные вычисления, выбранные пользователем. Я хочу выйти из программы при выборе == 5. Но он возвращает меня только: «Ваш выбор недействителен, пожалуйста, введите снова». Вот код:Вложенный цикл do-while и while-loop

#include <iostream> 
using namespace std; 

int main() 
{ 
int choice, x, y, z; 

do 
{ 
    cout << "Math is easy!" << endl << "1. Perform addition" << endl << "2. Perform subtraction" << endl << 
     "3. Perform multiplication" << endl << "4. Perform division" << endl << "5. Quit" << endl << "Please enter your choice[1 - 5]:" << endl; 
    cin >> choice; 
    while (choice < 1 || choice > 4) 
    { 
     cerr << "Your choice is invalid, please enter again."; 
     cin >> choice; 
    } 
    cout << "Please enter x:" << endl; 
    cin >> x; 
    cout << "Please enter y:" << endl; 
    cin >> y; 
    if (choice == 1) 
    { 
     z = x + y; 
     cout << x << "+" << y << "=" << z << endl; 
    } 
    if (choice == 2) 
    { 
     z = x - y; 
     cout << x << "-" << y << "=" << z << endl; 
    } 
    if (choice == 3) 
    { 
     z = x * y; 
     cout << x << "*" << y << "=" << z << endl; 
    } 
    if (choice == 4) 
    { 
     z = x/y; 
     cout << x << "+" << y << "=" << z << endl; 
    } 



} while (choice != 5); 
system("pause"); 
return 0; 

} 

Как это сделать?

+0

Вы видите, я надеюсь, что когда вы входите в 5, ваш цикл «while» отвергает его и снова спрашивает. Поэтому вам нужен специальный код для проверки 5 до этого цикла. – bobwki

ответ

1

Перед время цикла вы можете проверить if(choice == 5) и break;

if(choice == 5)// if choice == 5 break loop. or exit(0); 
    break; 
while (choice < 1 || choice > 4) 
{ 
    cerr << "Your choice is invalid, please enter again."; 
    cin >> choice; 
} 
. 
. 
. 
. 
if (choice == 1) 
{ 
    z = x + y; 
    cout << x << "+" << y << "=" << z << endl; 
} 
else if (choice == 2) 
{ 
    //code 
} 
else if (choice == 3) 
{ 
    //code 
} 

Использование if - elseif вместо использования нескольких if состояния. вы также можете использовать switch.

Смежные вопросы