无限循环
在代码编写错误或故意进行设计时,可以定义永不终止的循环,即所谓的无限循环。例如,下面的代码就是无限循环的一个简单例子:
while (true)
{
// code in loop
}
有时这种代码是有用的,而且使用 break
语句或者手工使用 Windwos 任务管理器总是可以退出这样的循环。但是,当出现这种情形意外时,就会出问题。考虑下面的循环,它与上一节的 for
循环非常类似:
int i = 1;
while (i <= 10)
{
if ((i % 2) == 0)
continue;
Console.WriteLine("{0}", i++);
}
i
是在循环的最后一行代码(即 continue
语句后的那条语句)执行完后才递增的。如果程序执行到 continue
语句(此时 i
为 2),程序会用相同的 i
值进行下一个循环,然后测试这个 i
值,继续循环,一直这样下去。这就冻结了应用程序。注意 ⚠️仍可以用一般方式退出已冻结的应用程序,所以不必重新启动计算机。