C# 第二章『基础语法』◆第2节:switch case语句

  • Post author:
  • Post category:其他


C# switch case 语句也是条件语句的一种,与上一节介绍的《C# if else语句》是类似的,但在判断条件的选择上会有一些局限性。

switch(表达式)
{
    case 值 1:
        语句块 1;
        break;
    case 值 2:
        语句块 2;
        break;
        ...
    default:
        语句块 n;
        break;
}

在这里,switch 语句中表达式的结果必须是整型、字符串类型、字符型、布尔型等数据类型,即参数必须是sbyte、byte、short、ushort、int、uint、long、ulong、char、string、bool或者枚举类型中的一种。

如果 switch 语句中表达式的值与 case 后面的值相同,则执行相应的 case 后面的语句块。如果所有的 case 语句与 switch 语句表达式的值都不相同,则执行 default 语句后面的值,语句块执行完毕后,执行break,使程序跳出switch语句。如果条件都不满足,则执行default中的语句块。

  • case 语句后面的各常量值是不能重复的,且不可以是浮点类型的。
  • case后面的语句块可以有多条语句,不必适用大括号括起来。
  • case语句和default语句的顺序可以改变,这不影响程序执行的结果。
  • 一个switch语句中只能有一个default语句,而且default语句可以省略。

尽管c#不允许从一个分支直接进入到另一个分支,但是可以把多个分支标签附加到任意分支,只要这些分支标签之间没有插入可以执行语句。如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace _20220731_2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine();
            string strNum = Console.ReadLine();
            switch(strNum)
            {
                case "1":
                case "2":
                case "3":
                    Console.WriteLine("111");
                    break;
                default:
                    Console.WriteLine("000");
                    break;
            }
            Console.ReadKey();
        }
    }
}

switch语句与if…else if…else语句的区别

if…else if…else语句可以处理多分支选择的情况,但是它主要是对布尔表达式、关系表达式或逻辑表达式进行判断的,而switch分支语句主要对常量值进行判断。

如果在程序开发中,如果遇到多分支选择的情况,并且判断条件不是关系表达式、逻辑表达式或浮点类型,就可以使用switch语句,这样效率会更高一些。



版权声明:本文为qq_45336030原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。