流程控制-循环-无限循环
可以通过编写错误代码或错误的设计,定义永远不终止的循环,即所谓的无限循环。例如下面的代码:
while(true)
{
//code in loop
}
有时这种代码也是有用的,使用break语句或者手工使用Windows Task Manager总是可以退出这样的循环。
但是,当这种情形偶然出现时,就会出问题。考虑下面的循环,它与上一节的for循环非常类似:
int i = 1;
while(i <= 10)
{
if((i % 2) == 0)
continue;
Console.WriteLine("{0}",i++);
}
i是在循环的最后一行代码执行后才递增的,即在continue语句执行完后递增。但在执行到这个continue语句(此时i位为2)时,程序会用相同的i值进行下一个循环,然后测试这个i值,继续循环,一直这样下去。这就冻结了应用程序。注意仍可以用正常方式退出已冻结的应用程序,所以此时不必重启计算机。