0

無制限のループで 1 を押すと、dixie が出力され続ける while ループで、私のメニューの何が問題なのか誰にもわかりますか。ユーザーが選択に戻るためにメニューが常にそこにあるように、メニューの周りに while ループがあります。ここに私のコードがあります:

#include <iostream>
using namespace std;

int main()
{
    int choice;
    bool menu = true;
    cout <<"========Welcome to the database menu========\n";

    cout << "Press 1 to insert a new record at a particular position\n"
            "Press 2 to delete a record from a particular position\n"
            "Press 3 to search the database  and print results\n"
            "Press 5 to find the average experience points of players at a particular level\n"
            "Press 6 to find and remove all duplicate entries\n"
            "Press 0 to quit\n\n\n\n\n\n\n\n\n";

    cout << "Choice: ";
    cin >> choice;
    //*****************************************************************************
    // Switch menu to display the menu.
    //*****************************************************************************
    while(menu)
    {
        switch (choice)
        {
            case 1:
                cout << "dixie";
                break;
            case 2:
                cout << "bexie";
                break;
            default:
                cout<< "That is not a choice!!!\n";
        }
    }    
    getchar();
    getchar();
}
4

4 に答える 4

2

menuループ内またはループchoice内で変更できるコードはありませんwhile。ですから、一旦それが始まると、それは決して止まりません。

于 2012-04-15T12:58:14.987 に答える
0

それはwhile (menu)あなたがメニューをに設定するまでそれがそれをし続けることを意味しますfalse

また、ループにを追加したいと思います。そうしないとcin >> choice、選択が何度も繰り返されます。

于 2012-04-15T12:58:19.597 に答える
0

whileループには、メニューオプションの印刷と、ユーザーに次のようなオプションを選択させることを含める必要があると思います。

while (menu)
{
    cout <<"========Welcome to the database menu========\n";
    cout << "Press 1 to insert a new record at a particular position\n"
            "Press 2 to delete a record from a particular position\n"
            "Press 3 to search the database  and print results\n"
            "Press 5 to find the average experience points of players at a particular level\n"
            "Press 6 to find and remove all duplicate entries\n"
            "Press 0 to quit\n\n\n\n\n\n\n\n\n";

    cout<< "Choice: ";
    cin>> choice;

    switch (choice)
    {
        case 1:
            cout << "dixie";
            break;
        case 2:
            cout << "bexie";
            break;
        default:
            cout<< "That is not a choice!!!\n";
    }
}

cout << "Choice: "もう1つの可能性は、行の直前でwhileループを開始することです。

于 2012-04-15T12:58:33.453 に答える
0

menu変数は常にtrueループ内にあります。現状と同じwhile(true)です。

于 2012-04-15T13:21:43.353 に答える