在交换机循环周期结束时未显示的游戏总量

问题描述 投票:1回答:2

因此,对于我的一个项目,我应该为用户提供多种游戏供选择,可以多次玩他们想要的游戏。一旦退出,程序应显示所玩游戏的总量。

我有完成游戏的代码,我只是单独在菜单上工作。出于某种原因,当我在最后调用总数时,它不会输出任何内容。甚至不是我为整数放置的初始值。

任何帮助深表感谢!

#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;

}
c++ loops switch-statement return-value
2个回答
1
投票

正如评论和@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;
    }
}

1
投票

问题在于:

        case 4 :
            return false;

在到达打印声明之前退出程序。

© www.soinside.com 2019 - 2024. All rights reserved.