c#跳转的几种语句

来源:互联网 发布:为什么域名要有别名 编辑:程序博客网 时间:2024/06/08 16:27
         [1].goto 语句
        功能说明:可以直接跳转到程序中用标签指定的另一行(标签是一个标识符,后跟一个冒号)。

        示例代码:
        goto Line1;
        Console.WriteLine("这个不会被执行...");
        Line1:
        Console.WriteLine("从这里继续执行...");
        输出结果:从这里继续执行...

        使用限制:
        1).不能跳转到像 for 循环这一的代码块中;
        2).不能跳出类的范围;
        3).不能退出 try...catch 块后面的 finally 块。

        编程说明:
        goto 语句的名声不太好,在大多数情况下不允许使用它。一般来讲,使用它肯定不是面向对象编程的好方式。但是有一个地方使用它是相当方便的——在 switch 语句的 case 子句之间跳转(其后无需再写 break 语句)。例如:
        1).跳转到某个 case 子句
        swith(str)
        {
            case value1:
                ...
                goto case value2;
            case value2:
                ...
                break;
        }
        
        2).跳转到某个 case 子句内部的自定义标签行
        swith(intPwd)
        {
            case value1:
                ...
                goto case Line1;
            case value2:
                ...
        Line1:
                ...
                break;
        }
    [2].break 语句
        功能说明:用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。

        示例代码:
        for (int i = 1; i < 10; i++)
        {
            if (i == 3)
            {
                Console.WriteLine("循环已结束!");
                break;
            }
            Console.WriteLine(i);
        }
        输出结果:
        1
        2
        循环已结束!

    [3].continue 语句
        功能说明:类似于 break,必须在 for、foreach、while 或 do...while 循环中使用。但它只退出循环的当前迭代,开始执行循环的下一次迭代,而不是退出循环。
       
        示例代码:
        int sum = 0;
        for (int i = 1; i < 101; i++)
        {
            if (i % 2 != 0)
            {
                continue;
            }
            sum += i;
        }
        Console.WriteLine(sum);//输出1-100之间所有偶数项的和
        输出结果:2550

    [4].return 语句
        功能说明:用于退出类的方法,把控制返回给调用方法。如果方法有返回类型,它必须返回这个类型的值;反之,则可以省略 return 语句。
        示例代码:
        static int sum(int a, int b)
        {
            return a + b;
        }
        static void Main(string[] args)
        {
            int myVal = sum(15, 35);
            Console.WriteLine(myVal);
        }