循环的中断
有时需要更精细地控制循环代码的处理。C#为此提供了 4 个命令,其中的 3 个已经在其他情形中介绍过了:
• break --- 立即终止循环。
• continue --- 立即终止当前的循环(继续执行下一次循环)。
• goto --- 可以跳出循环,到达已标记好的位置上(如果希望代码便于阅读和理解,最好不要使用该命令)。
• return --- 跳出循环及包含该循环的函数(参见第6章)。
break
命令可退出循环,继续执行循环后面的第一行代码,例如:
int i = 1; while (i <= 10) { if(i == 6) break; Console.WriteLine("{0}", i++); }
这段代码输出 1~5 的数字,因为
break
命令在i
的值为 6 时退出循环。
continue
仅终止当前的迭代,而不是整个循环,例如:
int i; for (i = 1; i <= 10; i++) { if((i % 2) == 0) continue; Console.WriteLine(i); }
在上面的示例中,只要
i
除以 2 的余数是 0,continue
语句就终止当前的迭代,所以只显示数字 1、3、5、7 和 9。
第3个方法使用前面的 goto
语句,例如:
int i = 1; while (i <= 10) { if (i == 6) goto exitPoint; Console.WriteLine("This code will never be reached."); exitPoint: Console.WriteLine("This code is run when the loop is exited using goto."); }
注意 ⚠️,使用
goto
语句退出循环是合法的(但显得杂乱一些),但使用goto
语句从外部进入循环是非法的。
🔚