c#中switch case语句的用法

简介: C#中的 `switch case`语句提供了一种简洁而高效的方式来处理多个条件分支。通过了解其基本语法、注意事项和高级用法,可以在实际开发中灵活运用 `switch case`,提高代码的可读性和维护性。希望本文能帮助你更好地理解和使用C#中的 `switch case`语句。

C#中switch case语句的用法

在C#编程中,switch case语句是一种常用的多分支选择结构,提供了一种简洁而高效的方式来处理多个条件分支。本文将详细介绍 switch case语句的用法,包括基本语法、注意事项和高级用法。

一、基本语法

switch case语句根据一个表达式的值,从多个选项中选择一个分支执行。基本语法如下:

switch (expression)
{
    case constant1:
        // 代码块
        break;
    case constant2:
        // 代码块
        break;
    // 更多case语句
    default:
        // 默认代码块
        break;
}
​
  • expression:需要判断的表达式,其结果类型必须是整型、字符型、枚举型或字符串。
  • case constant:每个 case标签后跟一个常量值,表示一个待匹配的条件。
  • break:用于终止当前 case分支,跳出 switch语句。
  • default:可选的默认分支,当所有 case都不匹配时执行。

二、示例

1. 基本示例

以下是一个基本示例,根据输入的星期几输出对应的活动:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("请输入星期几(1-7):");
        int day = Convert.ToInt32(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("星期五:打游戏");
                break;
            case 6:
                Console.WriteLine("星期六:去爬山");
                break;
            case 7:
                Console.WriteLine("星期天:休息");
                break;
            default:
                Console.WriteLine("输入错误!");
                break;
        }
    }
}
​

2. 字符串类型的switch case

C#支持在 switch case中使用字符串:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("请输入一个水果名:");
        string fruit = Console.ReadLine();

        switch (fruit)
        {
            case "苹果":
                Console.WriteLine("你选择了苹果。");
                break;
            case "香蕉":
                Console.WriteLine("你选择了香蕉。");
                break;
            case "橙子":
                Console.WriteLine("你选择了橙子。");
                break;
            default:
                Console.WriteLine("未知的水果。");
                break;
        }
    }
}
​

三、注意事项

1. 必须有break或其他跳出语句

每个 case分支必须以 breakreturngoto case等语句结束,否则会发生“贯穿”(fall-through),即执行完当前 case的代码后继续执行下一个 case的代码,直到遇到 break或结束 switch语句。

2. 常量值唯一且类型匹配

每个 case标签后的常量值必须唯一且类型与 expression匹配。否则会导致编译错误。

四、高级用法

1. 多个case共享代码

多个 case可以共享同一段代码,只需列出所有 case标签,并在最后一个 case后编写代码块:

int number = 2;

switch (number)
{
    case 1:
    case 2:
    case 3:
        Console.WriteLine("number 是 1、2 或 3");
        break;
    default:
        Console.WriteLine("number 不是 1、2 或 3");
        break;
}
​

2. 使用goto case跳转

在某些复杂场景下,可以使用 goto case从一个 case跳转到另一个 case

int number = 1;

switch (number)
{
    case 1:
        Console.WriteLine("number 是 1");
        goto case 2;
    case 2:
        Console.WriteLine("跳转到 case 2");
        break;
    default:
        Console.WriteLine("number 不是 1 或 2");
        break;
}
​

分析说明表

功能 描述 示例代码
基本使用 根据表达式值选择一个分支执行 switch (day) { case 1: ... break; case 2: ... break; ... }
字符串类型 使用字符串作为表达式和 case标签 switch (fruit) { case "苹果": ... break; ... }
多个case共享代码 多个 case标签共用一段代码 case 1: case 2: case 3: ... break;
goto case 从一个 case跳转到另一个 case goto case 2;
需要break或跳出语句 每个 case分支必须以 breakreturngoto等结束 case 1: ... break;
常量值唯一且类型匹配 case标签后的常量值必须唯一,且与表达式类型匹配 case 1: ... break; case 2: ... break;

五、总结

C#中的 switch case语句提供了一种简洁而高效的方式来处理多个条件分支。通过了解其基本语法、注意事项和高级用法,可以在实际开发中灵活运用 switch case,提高代码的可读性和维护性。希望本文能帮助你更好地理解和使用C#中的 switch case语句。

目录
相关文章
|
8月前
|
C#
C# Dev chartControl的用法
C# Dev chartControl的用法
|
8月前
|
安全 编译器 C#
C#学习相关系列之多线程---lock线程锁的用法
C#学习相关系列之多线程---lock线程锁的用法
|
8月前
|
安全 C#
C# List基本用法
C# List基本用法
|
8月前
|
C#
C#学习相关系列之多线程---ConfigureAwait的用法
C#学习相关系列之多线程---ConfigureAwait的用法
145 0
|
8月前
|
C#
C#学习相关系列之多线程---TaskCompletionSource用法(八)
C#学习相关系列之多线程---TaskCompletionSource用法(八)
236 0
|
8月前
|
Java C#
C#学习系列相关之多线程(五)----线程池ThreadPool用法
C#学习系列相关之多线程(五)----线程池ThreadPool用法
185 0
|
8月前
|
开发框架 .NET 编译器
C# 9.0中的静态匿名函数:引入static关键字的新用法
【1月更文挑战第15天】C# 9.0为匿名函数带来了一个新的修饰符static,允许开发者明确指定匿名函数不会捕获其包含作用域中的任何变量。这一特性增强了代码的性能和可读性,同时减少了因不小心捕获变量而导致的潜在错误。本文将详细探讨C# 9.0中静态匿名函数的语法、使用场景以及它们如何影响代码的性能和安全性。
|
8月前
|
程序员 C# 图形学
【Unity 3D】C#中条件语句if else switch的讲解
【Unity 3D】C#中条件语句if else switch的讲解
168 1
|
8月前
|
开发框架 .NET C#
C#学习相关系列之Linq用法---where和select用法(二)
C#学习相关系列之Linq用法---where和select用法(二)
479 2
|
7月前
|
C#
技术经验分享:C#DUID的用法及取得整数的几个方法
技术经验分享:C#DUID的用法及取得整数的几个方法
72 1