4.4.4 循环的中断
有时需要更精细地控制循环代码的处理。C#为此提供了4个命令,其中的3个已经在其他情形中介绍过了:
? break——立即终止循环。
? continue——立即终止当前的循环(继续执行下一次循环)。
? goto——可以跳出循环,到已标记好的位置上(如果希望代码易于阅读和理解,最好不要使用该命令)。
? return——跳出循环及其包含的函数(参见第6章)。
? break命令可退出循环,继续执行循环后面的第一行代码
4.4.5 无限循环
可以通过编写错误代码或错误的设计,定义永不终止的循环,即所谓的无限循环。例如,下面的代码:
while (true) { // code in loop }
时这种代码也是有用的,使用break语句或者手工使用Windows任务管理器总是可以退出这样的循环。但是,当这种情形偶尔出现时,就会出问题。考虑下面的循环,它与上一节的for 循环非常类似:
int i = 1; while (i <= 10) { if ((i % 2) == 0) continue; Console.WriteLine("{0}", i++); }
i是在循环的最后一行代码执行完后才递增的,即在continue语句执行完后递增。但在执行到这个continue语句(此时i为2)时,程序会用相同的i值进行下一个循环,然后测试这个i值,继续循环,一直这样下去。这就冻结了应用程序。
时间: 2024-10-10 02:45:40