#c
Вопрос:
Как сделать так, чтобы этот вариант повторился после вопроса, например:
using std::cout;
using std::cin;
using std::endl;
int main()
{
int Hero = 0, Level = 0, Melee = 0, MeleeRanged = 0, Necklace = 0, Charm = 0, Trinket = 0, ItemTotal = 0;
int choice;
int Loop = 0;
cout << "Choose the option you want via the menu below: " << endl;
cout << "1.) Hero Power " << endl;
cout << "2.) " << endl;
cout << "3.) How does Item Power work? " << endl;
cout << "4.) " << endl;
cin >> choice;
switch (choice)
{
case 1:
{
cout << "Enter Hero's level: ";
cin >> Level;
cout << "Enter Melee's power level: ";
cin >> Melee;
cout << "Enter secondary's Melee/Ranged power level: ";
cin >> MeleeRanged;
cout << "Enter Necklace's power level: ";
cin >> Necklace;
cout << "Enter Charm's power level: ";
cin >> Charm;
cout << "Enter Trinket's power level: ";
cin >> Trinket;
ItemTotal = Melee MeleeRanged Necklace Charm Trinket;
Hero = 10 * Level ItemTotal / 5;
cout << "Your Hero Power is: " << Hero << endl;
cout << "Would you like to reselect something in the menu?" << endl;
cout << "(Y for Yes) (N for No)";
cin >> choice;
break;
В конце заявления о случае 1, 2, 3 и 4 я хочу иметь возможность задать вопрос, чтобы пользователь ввел Y или N, и если Y, затем повторите меню перед тем, как выбрать новый или тот же выбор. Как я могу это сделать?
Комментарии:
1.
goto
? Это один из плохих вариантов 🙂
Ответ №1:
Вы можете использовать while
петлю. Предполагая, что вы знакомы с циклами. Но для программ, управляемых меню, do..while
лучше:
char ch = 'Y'
do {
cin >> choice;
switch (choice)
{
case 1: ..... //your choices
case 2: .....
case 3: .....
default:....
}
cout << "Do you want to continue?(Y/N)";
cin >> ch;
} while (ch != 'N');
Эта программа, управляемая меню, будет работать до тех пор, пока вы не введете выбор как N
.
Комментарии:
1. Мне нужно больше узнать о петлях, они меня смущают. Спасибо, я изучу это подробнее.
2. У меня есть новый вопрос. Это, кажется, неправильно работает, не могли бы вы сказать мне, почему? ` Выполняйте { случай 3: cout << «Мощность предметов варьируется от 5 до 300». < < endl; cout << «Каждый раз, когда игрок открывает сундук или изготавливает предмет, мощность предметов, которые они получают, определяется средним уровнем мощности самых мощных предметов, которые они нашли в сундуках в каждом слоте для предметов». < < endl; cout < <
3. Обратите внимание, что вам необходимо принять переменную цикла в do{…} пока блок. Из вашего приведенного выше комментария я не вижу, где изменяется (или принимается) переменная «Цикл», чтобы условие цикла(в то время как) было выполнено. Если вы инициализируете какой-либо символ без изменения переменной, это может превратиться в бесконечный цикл и привести к сбою вашей программы.
4. Извините за поздний ответ. Хм, но то, что ты только что сказал, потрясло меня. Я очень смущен этим. Я просто буду изучать это, пока не получу это, я полагаю, спасибо вам за вашу помощь.