Как я могу зацикливаться на опциях 1 и 2, учитывая, что это переключатель? Новичок в программировании и трудности с его решением. Любая помощь приветствуется!
#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;
}
В простоте вы можете использовать что-то вроде этого:
unsigned int selection = 25;
// Print menu and input selection
while (selection != 3)
{
// Do stuff
// Print menu and input selection
}
использование while
петля для покрытия cin
а также switch
случаев. Вы можете использовать что-то вроде ниже с использованием одной дополнительной переменной 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;
}
Использовать 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;
Это сделает программу лучше для пользователя
Используйте цикл 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!