zoukankan      html  css  js  c++  java
  • C#中switch语句用法

    1 不是每一个 case 都需要包含 break。如果 case 语句为空,则可以不包含 break,控制流将会继续后续的 case,直到遇到break为止。

    char grade = 'C';
    switch (grade)
    {
        case 'A':
        case 'B':
        case 'C': Console.WriteLine("CCC"); break;
        case 'D': Console.WriteLine("DDD"); break;
        default: Console.WriteLine("无效的成绩"); break;
    }

    无论grad = ABC都输出CCC

    2 如果 case 语句中有处理语句,则必须包含 break 或其他跳转语句。

    char grade = 'A';
    switch (grade)
    {
        case 'A': Console.WriteLine("AAA");
        case 'B':
        case 'C': Console.WriteLine("CCC"); break;
        case 'D': Console.WriteLine("DDD"); break;
        default: Console.WriteLine("无效的成绩"); break;
    }

    提示错误:控制不能从一个case标签("case 'A':")贯穿到另一个case标签

    3 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

    char grade = 'D';
    switch (grade)
    {
        case 'A': Console.WriteLine("AAA"); break;
        case 'B':
        case 'C': Console.WriteLine("CCC"); break;
        case 'D':
        default: Console.WriteLine("其他成绩"); break;
    }

    当grade=D其他值(不是ABC)时输出其他成绩

    default语句块中也必须添加break

    4 switch嵌套

    int a = 100;
    int b = 201;
    switch (a)
    {
        case 100:
            Console.WriteLine("100");
            switch (b)
            {
                case 200: Console.WriteLine("200"); break;
                case 201: Console.WriteLine("201"); break;
            }
            break;
        case 101:
            Console.WriteLine("101");
            break;
        default:
            Console.WriteLine("其他值");
            break;
    }

    输出100101

    5 switch与for循环

    5.1 break语句用于终止最近的封闭代码块,switch中的break不会终止for循环

    for(int i = 0; i < 5; i++)
    {                
        switch (i)
        {
            case 1: Console.Write("111"); break;
            case 2: Console.Write("222"); break;
            case 3: Console.Write("333"); break;
            case 4: Console.Write("444"); break;
            default: Console.Write("其他"); break;
        }
        Console.WriteLine("	第" + i.ToString() + "次循环");
    }

    111.png

    5.2 continue语句不能单独在switch中使用,可以在循环内的switch中使用,用于跳过当次循环,直接进入下一次循环。

    for(int i = 0; i < 5; i++)
    {                
        switch (i)
        {
            case 1: Console.Write("111"); break;
            case 2: Console.Write("222"); continue; break;
            case 3: Console.Write("333"); break;
            case 4: Console.Write("444"); break;
            default: Console.Write("其他"); break;
        }
        Console.WriteLine("	第" + i.ToString() + "次循环");
    }

    222.png

    注意第2次循环没有输出

    不建议在switch中使用continue

  • 相关阅读:
    无线鼠标和无线键盘能不能唤醒睡眠中的电脑的解决方案
    教你如何设置同时上内外网(单网卡或双网卡)
    Oracle_字符集问题(数据库与客户端字符集关联关系)
    关于破解移动宽带光猫 型号: GS3101 超级管理员密码
    Oracle 低版本客户端连接 18c 报ORA-28040 和 ORA-01017 错误的解决方法
    sql语句分组统计出年月日下数据记录数目
    Servlet文件上传
    ActiveMq+zookeeper+levelDB集群整合配置
    mongodb 级联操作查询时,关联条件
    maven插件地址博客园
  • 原文地址:https://www.cnblogs.com/rainman/p/12895017.html
Copyright © 2011-2022 走看看