C++ 使用c+;中不存在的嵌套if语句进行do while循环+;

C++ 使用c+;中不存在的嵌套if语句进行do while循环+;,c++,C++,好的,我对“边做边循环”的整个过程都是新手,我正在尝试制作一个主菜单,下面是我的代码: int main() { int choice; char sure; bool quit = false; char ctrl; do { cout << "Main Menu." << endl << "1. New Game." << endl

好的,我对“边做边循环”的整个过程都是新手,我正在尝试制作一个主菜单,下面是我的代码:

int main()
{
    int choice;
    char sure;
    bool quit = false;
    char ctrl;

    do
    {
        cout << "Main Menu." << endl
             << "1. New Game." << endl
             << "2. Load Game." << endl
             << "3. Exit." << endl
             << "Your choice: ";
        cin >> choice;

        if (choice == 1)
        {
            cout << "Are you sure you wish to start a new game? (Y/N) ";
            cin >> sure;

            if (sure != 'N' || sure != 'n')
            {
                ctrl = 'a';
                quit = true;
            }
        }
        else if ( choice == 2)
        {
            ctrl = 'b';
            quit = true;
        }
        else
            quit = true;

        }
    }
    while (quit == true);

    if (ctrl = 'a')
         cout << "New Game." << endl;
    else if (ctrl = 'b')
         cout << "Load Game." << endl;
    else
         cout << "Goodbye." << endl;

    return 0;
}
intmain()
{
智力选择;
char sure;
bool-quit=false;
字符控制;
做
{

cout您没有在任何地方将
quit
设置为false,循环在quit等于true时运行。您需要直接了解布尔值的含义,或者简单地将while部分更改为
while(!quit)
。我宁愿选择第一个。

我想您的意思是
while(quit!=true);


记住,比较是用
=
如果(ctrl='a')
'a'
赋值给
ctrl

你不应该改变吗

    while (quit == true);

?

也许你知道,但我会重复一遍

do{
//...
} while(condition)
循环有效。你迭代直到条件为假。在你的例子中,它总是真的,这就是为什么你有一个无限循环

还有一个错误被描述了


我改进了代码,希望所有错误都得到纠正。

我有…bool quit=false;:L@user1079559但每次你真的想退出时,都将其设置为true。大声读出所有内容:quit是false;现在在某些情况下执行语句并将quit设置为true;在quit等于true的情况下重复此操作。一旦其中一个e设置退出的条件已满足。我通常不会对第一个不正确的答案进行投票,但这其中的额外信息完全值得。它有效地在10分钟内抢占了OP的下一个问题!主要问题是你没有修复上次发布时我的评论。如果你不修复,它将继续出错。Just要让您有机会步入正轨,请将
while(quit==true)
替换为
while(!quit)
,然后开始思考这对代码的其余部分意味着什么。干杯&嗯,不要只是用正确的代码替换错误的代码。答案和问题本身将不再有任何意义。我已经这样做了,我想我已经退出了循环,但尽管在if上放置了getchar(),命令提示符并不仅仅是退出(ctrl==…)代码部分。有什么想法吗?@user1079559请确保更正
if(ctrl='a')
if(ctrl='b')
。同时在
之前删除
}
,而
!这对我来说很好!现在你可以独立了:)做了所有这些,它仍然是相同的问题XD它可能是如此愚蠢的简单,我将发布我现在的代码。
do{
//...
} while(condition)