c#跳转语句

来源:互联网 发布:美国国籍的好处知乎 编辑:程序博客网 时间:2024/06/05 17:10
 
  • break

  • continue

  • goto

  • return

  • throw

  • break

    break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。

    在此例中,条件语句包含一个应该从 1 计数到 100 的计数器;但 break 语句在计数达到 4 后终止循环。

     CopyCode image复制代码
    // statements_break.csusing System;class BreakTest{    static void Main()    {        for (int i = 1; i <= 100; i++)        {            if (i == 5)            {                break;            }            Console.WriteLine(i);        }    }}

    continue

    continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代。

    Collapse 图像示例

    在此示例中,计数器最初是从 1 到 10 进行计数,但通过将 continue 语句与表达式 (i < 9) 一起使用,跳过了 continue 与 for 循环体末尾之间的语句。

     CopyCode image复制代码
    // statements_continue.csusing System;class ContinueTest {    static void Main()     {        for (int i = 1; i <= 10; i++)         {            if (i < 9)             {                continue;            }            Console.WriteLine(i);        }    }}

    输出

     
    9

    goto 语句将程序控制直接传递给标记语句。

    Collapse 图像备注

    goto 的一个通常用法是将控制传递给特定的 switch-case 标签或 switch 语句中的默认标签。

    goto 语句还用于跳出深嵌套循环。

    Collapse 图像示例

    下面的示例演示了 goto 在 switch 语句中的使用。

     CopyCode image复制代码
    // statements_goto_switch.csusing System;class SwitchTest{    static void Main()    {        Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large");        Console.Write("Please enter your selection: ");        string s = Console.ReadLine();        int n = int.Parse(s);        int cost = 0;        switch (n)        {            case 1:                cost += 25;                break;            case 2:                cost += 25;                goto case 1;            case 3:                cost += 50;                goto case 1;            default:                Console.WriteLine("Invalid selection.");                break;        }        if (cost != 0)        {            Console.WriteLine("Please insert {0} cents.", cost);        }        Console.WriteLine("Thank you for your business.");    }}

    输入

     
    2

    示例输出

     
    Coffee sizes: 1=Small 2=Medium 3=LargePlease enter your selection: 2Please insert 50 cents.Thank you for your business.

    下面的示例演示了使用 goto 跳出嵌套循环。

     CopyCode image复制代码
    // statements_goto.cs// Nested search loopsusing System;public class GotoTest1{    static void Main()    {        int x = 200, y = 4;        int count = 0;        string[,] array = new string[x, y];        // Initialize the array:        for (int i = 0; i < x; i++)            for (int j = 0; j < y; j++)                array[i, j] = (++count).ToString();        // Read input:        Console.Write("Enter the number to search for: ");        // Input a string:        string myNumber = Console.ReadLine();        // Search:        for (int i = 0; i < x; i++)        {            for (int j = 0; j < y; j++)            {                if (array[i, j].Equals(myNumber))                {                    goto Found;                }            }        }        Console.WriteLine("The number {0} was not found.", myNumber);        goto Finish;    Found:        Console.WriteLine("The number {0} is found.", myNumber);    Finish:        Console.WriteLine("End of search.");    }}

    输入

     
    44

    示例输出

     
    Enter the number to search for: 44The number 44 is found.End of search.
    return

    return 语句终止它出现在其中的方法的执行并将控制返回给调用方法。它还可以返回一个可选值。如果方法为 void 类型,则可以省略 return 语句。

    Collapse 图像示例

    在下面的示例中,方法 A()double 值的形式返回变量 Area

     CopyCode image复制代码
    // statements_return.csusing System;class ReturnTest {    static double CalculateArea(int r)     {        double area = r * r * Math.PI;        return area;    }    static void Main()     {        int radius = 5;        Console.WriteLine("The area is {0:0.00}", CalculateArea(radius));    }}

    Collapse 图像输出

     
    The area is 78.54
    throw

    throw 语句用于发出在程序执行期间出现反常情况(异常)的信号。

    Collapse 图像备注

    引发的异常是一个对象,该对象的类是从 System.Exception 派生的,例如:

     CopyCode image复制代码
    class MyException : System.Exception {}// ...throw new MyException();

    通常 throw 语句与 try-catch 或 try-finally 语句一起使用。当引发异常时,程序查找处理此异常的 catch 语句。

    也可以用 throw 语句重新引发已捕获的异常。有关更多信息和示例,请参见 try-catch引发异常

    Collapse 图像示例

    此例演示如何使用 throw 语句引发异常。

     CopyCode image复制代码
    // throw exampleusing System;public class ThrowTest {    static void Main()     {        string s = null;        if (s == null)         {            throw new ArgumentNullException();        }        Console.Write("The string s is null"); // not executed    }}