【发布时间】:2015-10-03 00:32:58
【问题描述】:
在 do-while 循环和 if else 语句中是否最适合在语句结束时更改变量值并使用它来创建您的 while 布尔表达式,或者最好设置您的 while 表达式始终为真,然后在 if else 语句中使用 break 语句。
为了澄清,这里有两种方法。
do
{
cout << "What is your choice?" << endl;
cin >> choice;
if(choice == 1)
{
cout << "You chose 1" << endl;
doWhileModifier = 1;
} else {
cout << "That's not a correct choice" << endl;
doWhileModifier = 0;
}
}
while (doWhileModifier == 0);
VS
do
{
cout << "What is your choice?" << endl;
cin >> choice;
if(choice == 1)
{
cout << "You chose 1" << endl;
break;
} else {
cout << "That's not a correct choice" << endl;
}
}
while (true);
我最初是用第一种方式做的,但现在我倾向于第二种方式。
非常感谢您的输入!
【问题讨论】:
-
为什么不直接使用
while(choice != 1)等 -
我想我有点跳到将它们分支出来,而不是将它们全部包含在一个布尔表达式中。如果有多个选择,添加是否正确,例如:
while(choice !=1 || choice !=2 || choice != 3)? -
这取决于你的程序需要做什么。做事并不总是一种单一的包罗万象的方式。例如,如果您有一组全部有效的选项(假设 3 个有效选项),您可以这样做:
do { ... } while( choice < 0 || choice > 3);并在里面有一个switch(choice) { ... }。这只是一种方法,还有其他方法。 -
您介意看看这段代码,看看您认为哪三个最合适吗? pastebin.com/fhkhdPK6
-
您可以按照我在第二条评论中针对您的第一个
do { ... } while ( ... );声明所说的操作。对于第二条语句:do { prompt, get input } while ( input < 0 || input > 10000 );更清晰。我建议你买一本关于一般编程的好书,如果你有这些问题,就从那里开始。我推荐编程:使用 C++ 的原则和实践(无论当前的最新版本是什么)。