Общее количество игр, не отображаемых в конце цикла переключения - PullRequest
0 голосов
/ 21 февраля 2019

поэтому для одного из моих проектов я должен предоставить пользователю несколько игр на выбор, в которые можно играть сколько угодно раз.Как только они выйдут, программа должна отобразить общее количество сыгранных игр.

У меня есть код для готовых игр, я просто работаю над меню отдельно.По какой-то причине, когда я обращаюсь к итогу в конце, он ничего не выводит.Даже первоначальное значение, которое я помещаю для целого числа.

Любая помощь очень ценится!

#include <iostream>

using namespace std;

int main() {

    int totalGames = 0;

    while (true) {

        int gameChoice;

        cout << "Which game would you like to play?\n\n";
        cin >> gameChoice;

        switch (gameChoice)
        {
            case 1 :
                cout << "You chose option 1";
                totalGames++;
            break;
            case 2 :
                cout << "You chose option 2";
                totalGames++;
            break;
            case 3 :
                cout << "You chose option 3";
                totalGames++;
            break;
            case 4 :
                return false;
            break;
            default:
                cout << "Invalid Option";    
            break;
        }

    }

    cout << "Total games: " << totalGames << endl;
    return 0;

}

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Как уже предлагалось в комментарии и @MichaelVeksler, случай 4 выходит из программы и, следовательно, ничего не выводит.Например, вы можете вывести завершающий цикл while с помощью логического флага следующим образом:

DEMO

bool doContinue = true; // flag

while (doContinue)
{
    int gameChoice;

    cout << "Which game would you like to play?\n\n";
    cin >> gameChoice;

    switch (gameChoice)
    {
        case 1 :
            cout << "You chose option 1";
            totalGames++;
        break;
        case 2 :
            cout << "You chose option 2";
            totalGames++;
        break;
        case 3 :
            cout << "You chose option 3";
            totalGames++;
        break;
        case 4 :
            doContinue = false;
        break;
        default:
            cout << "Invalid Option";    
        break;
    }
}
0 голосов
/ 21 февраля 2019

Проблема связана с:

        case 4 :
            return false;

, которая выходит из программы до достижения оператора печати. ​​

...