C# 中的 Case 表达式:Switch 语句的深入解析

开发 前端
C# 中的 switch​ 语句是一种强大的控制结构,它允许你根据表达式的值进行复杂的条件判断。通过使用具体的值、范围或枚举,你可以编写出灵活且易于理解的代码。掌握 switch 语句的用法对于编写高质量的 C# 代码至关重要。

在 C# 编程语言中,switch 语句是一种强大的控制结构,它允许程序根据某个表达式的值进行多路分支选择。通过 case 关键字,我们可以定义不同的条件分支,每个分支对应一个特定的值或值的范围。当 switch 表达式的值匹配某个 case 标签时,会执行相应的代码块。

基础用法

下面是一个简单的 switch 语句示例,它根据一个整数的值来打印不同的消息:

int number = 3;

switch (number)
{
    case 1:
        Console.WriteLine("Number is 1");
        break;
    case 2:
        Console.WriteLine("Number is 2");
        break;
    case 3:
        Console.WriteLine("Number is 3");
        break;
    default:
        Console.WriteLine("Number is not 1, 2, or 3");
        break;
}

在这个例子中,switch 语句检查 number 变量的值。根据该值,执行与相应 case 标签匹配的代码块。如果没有任何 case 标签与 number 的值匹配,则执行 default 分支。

使用范围

除了具体的值,你还可以使用范围来匹配 switch 表达式的值。这在处理数字或枚举等类型时特别有用。下面是一个使用范围的 switch 语句示例:

int score = 85;

switch (score)
{
    case int n when n >= 90:
        Console.WriteLine("Excellent");
        break;
    case int n when n >= 80:
        Console.WriteLine("Good");
        break;
    case int n when n >= 60:
        Console.WriteLine("Pass");
        break;
    default:
        Console.WriteLine("Fail");
        break;
}

在这个例子中,我们使用了模式匹配(case int n when ...)来定义分数的范围。当 score 的值落在某个范围内时,执行相应的代码块。

使用枚举

switch 语句也常用于处理枚举类型的值。下面是一个使用枚举的 switch 语句示例:

enum Color { Red, Green, Blue }

Color myColor = Color.Green;

switch (myColor)
{
    case Color.Red:
        Console.WriteLine("The color is red");
        break;
    case Color.Green:
        Console.WriteLine("The color is green");
        break;
    case Color.Blue:
        Console.WriteLine("The color is blue");
        break;
}

在这个例子中,我们定义了一个名为 Color 的枚举,并使用 switch 语句根据枚举的值打印不同的消息。

结论

C# 中的 switch 语句是一种强大的控制结构,它允许你根据表达式的值进行复杂的条件判断。通过使用具体的值、范围或枚举,你可以编写出灵活且易于理解的代码。掌握 switch 语句的用法对于编写高质量的 C# 代码至关重要。

责任编辑:武晓燕 来源: 程序员编程日记
相关推荐

2024-03-25 13:46:12

C#Lambda编程

2009-07-09 09:51:07

Lambda表达式C#

2022-01-14 07:56:39

C#动态查询

2024-10-15 16:53:07

2011-07-06 11:04:42

C#正则表达式

2011-04-25 08:44:34

C#正则表达式

2024-10-10 14:43:54

LambdaSpring编程

2009-12-15 09:43:50

Ruby case w

2010-04-28 18:17:16

Oracle CASE

2011-05-20 17:50:45

C#

2009-04-09 09:19:25

C#规则表达式.NET

2010-10-19 10:03:02

Lambda表达式

2009-06-08 21:45:46

Javaswitch-case

2009-08-07 15:41:39

C#正规表达式

2009-08-27 09:44:59

C# Lambda表达

2009-08-19 10:41:14

C# switch和c

2020-11-04 09:23:57

Python

2009-09-14 13:57:20

C# Lambda表达Lambda表达式

2009-08-17 13:56:28

C#正则表达式入门

2009-08-03 17:27:14

C#正则表达式
点赞
收藏

51CTO技术栈公众号