Почему после выбора суммы вклада предлагает ввести новую сумму вклада вместо отображения меню
При выборе 1 пункта пользователю предлагается показать текущую сумму вклада. При выборе 2 – соответственно ввести новую сумму вклада. При выборе 3 – соответственно выход из программы.
Код который я использовал:
//Program writed with error when choose 1 after it progrum should output menu instead entering new sum of conribution
#include <iostream>
#include <string>
using namespace std;
int main() {
int contribution;
char choose;
cout << "Hello I don't know what I'm doing but still" << endl;
cout << "Enter sum of contribution in bank:";
cin >> contribution;
cout << endl;
while (true) {
system("cls");
cout << "What you what to do" << endl;
cout << "1.Show sum of contribution" << endl;
cout << "2.Change sum of contribution" << endl;
cout << "3.Exit" << endl << endl;
cin >> choose;
switch (choose) {
case '1':
cout << "Sum of cintribution:" << contribution << endl;
system("pause");
case '2':
cout << "Enter new sum of contribution:";
cin >> contribution;
cout << "New sum of of contrubution is " << contribution << endl;
case '3':
cout << "Have a good day!";
break;
default:
cout << "choose 1 2 or 3";
}
}
}
Почему после выбора суммы вклада предлагает ввести новую сумму вклада вместо отображения меню
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
потому что case надо разделять через break иначе они будут выполняться один за другим
case '1':
cout << "Sum of cintribution:" << contribution << endl;
system("pause");
break;
case '2':
cout << "Enter new sum of contribution:";
cin >> contribution;
cout << "New sum of of contrubution is " << contribution << endl;
break;
case '3':
cout << "Have a good day!";
break;
default:
Кстати при выборе 3 не происходит никакого выхода и надо хотя бы так реализовать:
while (true) {
// ...
bool isExit == false;
switch (choose) {
case '3':
cout << "Have a good day!";
isExit = true;
break;
default:
cout << "choose 1 2 or 3";
}
if (isExit == true)
break;
}