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)