【发布时间】:2011-05-28 07:15:17
【问题描述】:
我有一个简单的控制台应用程序,它输出一个菜单并等待用户输入。执行适当的操作后,整个过程重复。输入特定字符串时程序退出。这是通过无限循环和提前返回语句实现的:
int main()
{
while (true)
{
OutputMenu();
string UserChoice;
cin >> UserChoice;
// ...
if (UserChoice == "exit") return 0;
}
}
根据我的老师的说法,使用无限循环并使用 return 语句破解我的方法是不好的做法。他建议如下:
int main()
{
bool ShouldExit = false;
while (!ShouldExit)
{
OutputMenu();
string UserChoice;
cin >> UserChoice;
// ...
if (UserChoice == "exit") ShouldExit = true;
}
return 0;
}
- 使用无限循环和提前返回语句真的是个坏主意吗?
- 如果是这样,是有技术原因还是只是不好的做法?
【问题讨论】:
-
请注意,在第二种情况下,您忘记了
return一个值。 -
@ereOn:你不需要从
main返回值。 -
@Billy ONeal:当然。有很多事情不需要去做。但我相信这样做看起来更一致。
-
@ereOn:虽然我同意在允许您这样做的地方省略
return声明不会给您带来任何好处,并且总是自己编写,但我不会向其他人指出这一点如果他们忘记了重要的事情。 -
@sbi 在这种情况下,我认为有助于区分两者是相关的。
标签: c++ infinite-loop