流程控制-循环-无限循环

    可以通过编写错误代码或错误的设计,定义永远不终止的循环,即所谓的无限循环。例如下面的代码:

     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值,继续循环,一直这样下去。这就冻结了应用程序。注意仍可以用正常方式退出已冻结的应用程序,所以此时不必重启计算机。

posted @ 2009-03-20 13:59    阅读(501)  评论(0编辑  收藏  举报