循环的中断

  有时需要更精细地控制循环代码的处理。C#为此提供了 4 个命令,其中的 3 个已经在其他情形中介绍过了:

  1. break --- 立即终止循环。
  2. continue --- 立即终止当前的循环(继续执行下一次循环)。
  3. goto --- 可以跳出循环,到达已标记好的位置上(如果希望代码便于阅读和理解,最好不要使用该命令)。
  4. return --- 跳出循环及包含该循环的函数(参见第6章)。

break 命令可退出循环,继续执行循环后面的第一行代码,例如:



  1. int i = 1;
    while (i <= 10)
    {
    if(i == 6)
    break;
    Console.WriteLine("{0}", i++);
    }


这段代码输出 1~5 的数字,因为 break 命令在 i 的值为 6 时退出循环。

continue 仅终止当前的迭代,而不是整个循环,例如:



  1. 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 语句,例如:



  1. 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 语句从外部进入循环是非法的。