我在许多项目中使用while循环.这对我很有帮助而且并不过分复杂.那么,为什么使用true循环无限运行后台进程是一个坏主意.谢谢你的回答.
我的项目负责人不允许在我的代码中进行这种循环,他认为必须将其替换为
while(!exit_flag)
这是值得商。的。while (!exit_flag)
这表明该循环具有自然退出条件,它会自行到达某个特定点,例如从0到100计数然后退出循环。但是,如果您正在编写此循环以创建永久守护程序或事件循环,则该循环的目的是使程序无限期地运行。没什么比无限的好while (true)
。
两者之间并没有真正的技术差异。这只是可读性和意图表达的问题。当然,您将不得不与最终将要阅读该代码的人员联系起来。如果他们的政策是while (!exit_flag)
,那就这样吧。
这不是一个坏习惯,它只是意味着你不认为你的代码通过.
需要条件告诉循环何时完成循环.如果你有一个终止点,为什么不把它作为一个条件?
var i = 0;
while(true){
i++;
if(i == 100)
break;
}
Run Code Online (Sandbox Code Playgroud)
这是很好的代码.但这也是这样的:
var i = 0;
while(i != 100){
i++;
}
Run Code Online (Sandbox Code Playgroud)
这两种方法都是正确的,但是如果其他人正在阅读您的代码,那么在循环将停止迭代时更容易看到它是否正好在条件中.