美文网首页
19.C# switch多分支语句

19.C# switch多分支语句

作者: 技术老小子 | 来源:发表于2024-02-26 07:03 被阅读0次

摘要


一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。

正文


switch 语句必须遵循下面的规则:

  • switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量。
  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  • 不是每一个 case 都需要包含 break。如果 case 语句为空,则可以不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
  • C# 不允许从一个 case 部分继续执行到下一个 case 部分。如果 case 语句中有已经执行,则必须包含 break 或其他跳转语句。
  • 一个 switch 语句可以有一个可选的 default 语句,在 switch 的结尾。default 语句用于在上面所有 case 都不为 true 时执行的一个任务。default 也需要包含 break 语句,这是一个良好的习惯。
  • C# 不支持从一个 case 标签显式贯穿到另一个 case 标签。如果要使 C# 支持从一个 case 标签显式贯穿到另一个 case 标签,可以使用 goto 一个 switch-case 或 goto default。
//根据用户输入成绩A,B,C,D给出评语
Console.WriteLine("请输入成绩:");
string grade = Console.ReadLine();
switch (grade)
{
    case "A":
        Console.WriteLine("优秀");
        break;
    case "B":
        Console.WriteLine("还不错");
        break;
    case "C":
        Console.WriteLine("再接再历");
        break;
    case "D":
        Console.WriteLine("加把劲!");
        break;
    default:
        Console.WriteLine("您的输入不对!");
        break;
}

注:switch可以嵌套,可以用switch尽量用,不要用if,switch的阅读性要强

Console.WriteLine("请输入今天星期几(数字):");
int day = int.Parse(Console.ReadLine());
string status = Console.ReadLine();
switch (day)
{
    case 1:
        Console.WriteLine("星期一");
        break;
    case 2:
        Console.WriteLine("星期二");
        break;
    case 3:
        Console.WriteLine("星期三");
        break;
    case 4:
        Console.WriteLine("星期四");
        break;
    case 5:
        Console.WriteLine("星期五");
        switch (status)
        {
            case "A":
                Console.WriteLine("喝酒去!");
                break;
            case "B":
                Console.WriteLine("老实回家!");
                break;
            default:
                break;
        }
        break;
    case 6:
        Console.WriteLine("星期六");
        break;
    case 7:
        Console.WriteLine("星期天");
        break;
}

再修改一下,周五,周六都可去嗨!以下例子,可以看出5,与6输入时结果是一样的,这个可以贯穿。

Console.WriteLine("请输入今天星期几(数字):");
int day = int.Parse(Console.ReadLine());
string status = Console.ReadLine();
switch (day)
{
    case 1:
        Console.WriteLine("星期一");
        break;
    case 2:
        Console.WriteLine("星期二");
        break;
    case 3:
        Console.WriteLine("星期三");
        break;
    case 4:
        Console.WriteLine("星期四");
        break;
    case 5:
    case 6:
        Console.WriteLine("今天可以去嗨!");
        switch (status)
        {
            case "A":
                Console.WriteLine("喝酒去!");
                break;
            case "B":
                Console.WriteLine("老实回家!");
                break;
            default:
                break;
        }
        break;
    case 7:
        Console.WriteLine("星期天");
        break;
}

switch 与if else区别

if else 对应的是关系表达式,逻辑表达式,布尔值

switch对应的是具体类弄的值,整形,bool,string,char,枚举这类

相关文章

  • 流程控制与数组(分支结构)

    分支结构 if条件语句 switch分支语句

  • GO学习 switch用法

    switch分支语句 packagemainimport"fmt"funcmain(){/* switch语句:...

  • java——控制执行流程

    程序的控制结构:顺序、分支、循环 分支语句:if和switch 1.if(条件){//满足条件执行语句块} if多...

  • Java学习7:控制语句:switch语句及循环语句以及转向语句

    switch语句 switch语句语法及原理 switch语句也是选择语句,也可以叫做分支语句。语法格式:swit...

  • day5-分支和循环总结

    5.1 分支结构 python中分支结构只有if语句,没有switch语句 5.1.1 if语句 a.语法:if ...

  • java基础第四天

    1.switch分支语句的直通特性: //switch分支语句如果case代码块中不加break的话,有直通的特性...

  • 转移语句的使用

    1、break语句 用在switch语句中,用于终止case语句,跳出switch分支结构; 运行结果如下所示: ...

  • JavaScript之语句

    if……else语句 单分支语法格式: 双分支语法格式: 多分支语法格式: 例如: switch语句 语法格式: ...

  • 第五天

    分支结构包括if else(两支)和switch(多支);循环结构包括for语句,while语句和do while...

  • 2019-06-11

    js基础知识: 多重条件判断语句 语法: switch语句 条件分支语句也叫switch语句语法: 代码例子: 数...

网友评论

      本文标题:19.C# switch多分支语句

      本文链接:https://www.haomeiwen.com/subject/tdgaadtx.html