好的,所以我对整个do while循环事物都是新手,我正在尝试创建一个主菜单,这是我的代码:
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;
}
有一些getchar()在那里抛出。但唯一的问题是,你可能会发现,在我做完所有事情之后,它只会重新启动,而不是退出循环。代码中有什么问题?
由于
答案 0 :(得分:5)
我认为你的意思是while (quit != true);
请记住,与==
进行比较,if (ctrl = 'a')
将'a'
分配给ctrl
..
答案 1 :(得分:4)
你没有在任何地方将quit
设置为false,并且当quit等于true时你的循环运行。您需要直接获取布尔值的含义,或者只需将while部分更改为while(!quit)
。我宁愿第一个。
答案 2 :(得分:2)