在C++中切换语句错误

Ang*_*oya 1 c++

大家好,请有人帮我修一下这个代码吗?它运行但它不执行它应该执行的任务.运行后,它会自动跳转到默认语句并跳过案例.请帮我解决这个问题!

#include<iostream.h>
#include<conio.h>

using namespace std;


int main()
{
    int choice;
    char nbaPlayer, tele, food, subject, x;

    cout << "This program determines your favorites.\n\n";
    cout << "Please select the number of your corresponding choice.";
    cout << "\n1. NBA Player";
    cout << "\n2. Teleserye";
    cout << "\n3. Food";
    cout << "\n4. Subject";
    cout << "\n5. Exit";

    switch (choice)
    {
        case 1:
            cout << "You have chosen NBA Player.\n";
            cout << "Please enter your favorite NBA Player. \n";
            cin >> nbaPlayer;
            cout << "Your favorite NBA player is " << nbaPlayer;
            break;

        case 2:
            cout << "You have chosen Teleserye.\n";
            cout << "Please enter your favorite teleserye. \n";
            cin >> tele;
            cout << "Your favorite teleserye is " << tele;
            break;

        case 3:
            cout << "You have chosen food.\n";
            cout << "Please enter your favorite food. \n";
            cin >> food;
            cout << "Your favorite food is " << food;
            break;

        case 4:
            cout << "You have chosen subject.\n";
            cout << "Please enter your favorite subject. \n";
            cin >> subject;
            cout << "Your favorite subject is " << subject;
            break;

        case 5:
            cout << "You chose to exit.\n";
            break;

        default:
            cout <<"\nInvalid input";

    }

    getch();
}
Run Code Online (Sandbox Code Playgroud)

Qiu*_*Qiu 11

你忘记了:

cin>>choice
Run Code Online (Sandbox Code Playgroud)

显示可用的选项后.所以当你永远不会为选择分配价值时,它总会选择default.

  • 小修正:它不会总是选择`default`.从未初始化的`int`读取是未定义的行为.在实践中,`choice`可以有任何价值. (6认同)