Как мне сделать так, чтобы это повторилось?

#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. Извините за поздний ответ. Хм, но то, что ты только что сказал, потрясло меня. Я очень смущен этим. Я просто буду изучать это, пока не получу это, я полагаю, спасибо вам за вашу помощь.