• C# 跳出循环几种方法详解


    说明:

    break语句:终止并跳出循环体。
    continue语句:终止当前循环,重新开始一个新的循环。
    goto语句:跳转到指定位置 。

    一,continue语句

    class Program
    {
        static void Main(string[] args)
        {
            for(int i = 1; i <= 10; i++)
            {
                if (i == 4)
                {
                    continue;
                }
                Console.WriteLine(i);
            }
        }  
    }

    结果

     从上面的执行效果可以看出,当 for 循环中的值迭代到 4 时 continue 语句结束了本次 迭代,继续下一次迭代,因此在输出结果中没有 4。

    二,break语句

    class Program
    {
        static void Main(string[] args)
        {
            for(int i = 1; i <= 10; i++)
            {
                if (i == 4)
                {
                    break;
                }
                Console.WriteLine(i);
            }
        }  
    }

    结果

     从上面的执行效果可以看出,for 循环要完成 1~10 的输出,但是当输出到 4 时使用了 break 语句,结束了 for 循环,因此仅输出了 1~3 的数。

    三,goto语句(语句用于直接在一个程序中转到程序中的标签指定的位置,标签实际上由标识符加上冒号构成。)

    语法:

    goto Labell;
        语句块 1;
    Labell:
        语句块 2;

    如果要跳转到某一个标签指定的位置,直接使用 goto 加标签名即可。

    在上面的语句中使用了 goto 语句后,语句的执行顺序发生了变化,即先执行语句块 2,再执行语句块 1。

    此外,需要注意的是 goto 语句不能跳转到循环语句中,也不能跳出类的范围。

    由于 goto 语句不便于程序的理解,因此 goto 语句并不常用。

    class Program
    {
        static void Main(string[] args)
        {
            int count = 1;
        login:
            Console.WriteLine("请输入用户名");
            string username = Console.ReadLine();
            Console.WriteLine("请输入密码");
            string userpwd = Console.ReadLine();
            if (username == "aaa" && userpwd == "123")
            {
                Console.WriteLine("登录成功");
            }
            else
            {
                count++;
                if (count > 3)
                {
                    Console.WriteLine("用户名或密码错误次数过多!退出!");
                }
                else
                {
                    Console.WriteLine("用户名或密码错误");
                    goto login;//返回login标签处重新输入用户名密码
                }
            }
        }
    }

    结果

     

  • 相关阅读:
    luogu1525 [NOIp2011]关押罪犯 (并查集)
    luogu1084 [NOIp2012]疫情控制 (二分答案+倍增+dfs序)
    luogu1083 [NOIp2012]借教室 (二分答案+差分)
    bzoj4152 The Captain (dijkstra)
    luogu1081 [NOIp2012]开车旅行 (STL::multiset+倍增)
    suoi22 WRX知识树(dfs序)
    [HNOI2010]弹飞绵羊
    1596: [Usaco2008 Jan]电话网络
    [Tyvj Jan]青蛙跳荷叶
    [BZOJ1116] CLO
  • 原文地址:https://www.cnblogs.com/qingjiawen/p/14688195.html
Copyright © 2020-2023  润新知