无限循环

  在代码编写错误或故意进行设计时,可以定义永不终止的循环,即所谓的无限循环。例如,下面的代码就是无限循环的一个简单例子:

  1. while (true)
  2. {
  3. // code in loop
  4. }

  有时这种代码是有用的,而且使用 break 语句或者手工使用 Windwos 任务管理器总是可以退出这样的循环。但是,当出现这种情形意外时,就会出问题。考虑下面的循环,它与上一节的 for 循环非常类似:

  1. int i = 1;
  2. while (i <= 10)
  3. {
  4. if ((i % 2) == 0)
  5. continue;
  6. Console.WriteLine("{0}", i++);
  7. }

  i 是在循环的最后一行代码(即 continue 语句后的那条语句)执行完后才递增的。如果程序执行到 continue 语句(此时 i 为 2),程序会用相同的 i 值进行下一个循环,然后测试这个 i 值,继续循环,一直这样下去。这就冻结了应用程序。注意 ⚠️仍可以用一般方式退出已冻结的应用程序,所以不必重新启动计算机。