空循环并不会无休止地进行下去——在重复预先指定的次数后,它就会退出循环。无穷循环会无休止地进行下去,并且永远不会退出循环。把空循环和无穷循环对比一下,就能很好地说明它们之间的区别。
下面是一个空循环的例子:
for(x=O;x<500000;x++);
注意,在上例中,在for循环的闭括号后直接加入了一个分号。正如你可能已经知道的那样,c语言并不要求在for循环后加分号,通常只有包含在for循环中的语句后面才会带分号。
在for循环后面直接加入分号(并且不使用大括号),即可建立一个空循环——实际上是一个不包含任何语句的循环。在上例中,当for循环执行时,变量x将自增500,000次,而在每一次自增运算期间,没有进行任何处理。
那么,空循环有什么用呢?在大多数情况下,它的作用就是在程序中设置一次暂停。前面的例子将使程序“暂停”一段时间,即计算机数到500,000所需的时间。然而,空循环还有更多的用处,请看下例:
while(!kbhit());
这个例子用一个空循环来等待一次击键操作。当程序需要显示类似"Press Any Key ToContinue"这样的信息时,这种方法是很有用的(假设你的用户很聪明,不会执着地在键盘上寻找"Any Key"!)。
无穷循环与空循环不同,它永远不会结束。下面是一个无穷循环的例子:
while(1);
在这个例子中,while语句中包含了一个非零常量,因此,while的条件永远为真,循环永远不会结束。注意,在闭括号后面直接加入一个分号,因此while语句中不包含任何其它语句,循环将无法终止(除非终止程序)。