我试图理解for循环示例背后的概念
for (;;)
{
//write code
}
我理解它的作用以及它是如何与while(true)相同的循环结构,但我的问题是......这是一个很好的编程实践,以及这种类型的循环结构应用于哪种应用程序? / p>
答案 0 :(得分:3)
在某些情况下,这是理想的行为。例如,基于盒式游戏机的游戏通常在其主循环中没有退出条件,因为没有用于程序退出的操作系统;循环运行直到控制台断电。
另一个例子是模块从另一个模块监听动作。它需要一直听,所以听众必须听无限时间或直到程序关闭。像套接字,线程和UIComponents。
对于无限循环的概念没有不好的做法,但是如果不想要或者偏见你的系统的功能,可以考虑它,比如当你创建一个无意的无限循环或失去循环的程序控制时。 / p>
使无限循环成为一种好习惯:
for(;;)
或while(true)
。避免表达中的重言式,做到这一点简单!答案 1 :(得分:1)
while(abortRequested)
{
// ....
}
几乎相当于
while(true)
{
// ...
// ... dozens of lines of code ...
if(abortRequested)
break;
// prepare next iteration
}
或者,这也可能在守护程序线程中运行,该守护程序线程在完成所有非守护程序线程时自动终止。所以这些结构的语义一般是:
默认情况下应该保持永久运行,除非收到一些明确的终止事件。
答案 2 :(得分:0)
总的来说没关系,没什么值得担心的。这是程序员的偏好。
我更喜欢while(true)
,从我的角度来看,它是无限循环的更优雅的形式。其他人可能更喜欢for(;;)
方法。
答案 3 :(得分:0)
这只是个人偏好的问题。例如,我更喜欢这种风格:
while (true) {
// Do infinite task
}
这一切都取决于可读性,几个月后你可以轻松阅读和理解。
答案 4 :(得分:0)
一个观点可能是: 虽然更像是基于事件/条件的..在运行循环之前,直到发生了一些终止循环的事情。 另一方面,for循环更像是基于计数器,你想要指定循环发生的次数。至少它有明确的规定。
在技术上,两者都是相同的,它们都检查运行条件以开始循环周期。