Z
ZHANK
编程在线教程C# 教程条件判断与模式匹配
控制流程

条件判断与模式匹配

if/else、三元运算符、switch 表达式(C# 8+)、模式匹配 is/when

条件判断与模式匹配

C# 的 if-else 和传统语言一样,但 switch 表达式和模式匹配让它远超"条件判断"的范畴。

学完本章你将: 掌握 if/else、switch 表达式、is 模式匹配。


if / else

csharp
int score = 85;

if (score >= 90)
    Console.WriteLine("优秀");
else if (score >= 80)
    Console.WriteLine("良好");    // 输出这句
else
    Console.WriteLine("加油");

// 三目运算符
string grade = score >= 60 ? "及格" : "不及格";

is 模式匹配

csharp
// 类型模式
if (obj is string s && s.Length > 0)
    Console.WriteLine(s.ToUpper());

// 属性模式
if (person is { Age: >= 18, Name: string name })
    Console.WriteLine($"{name} 已成年");

// 关系模式
int temp = 25;
if (temp is >= 20 and <= 30)
    Console.WriteLine("舒适温度");

switch 表达式(C# 8+)

csharp
// 传统 switch 语句
string result;
switch (day)
{
    case 1: result = "周一"; break;
    case 2: result = "周二"; break;
    default: result = "其他"; break;
}

// switch 表达式(更简洁,可直接赋值)
var result2 = day switch
{
    1 => "周一",
    2 => "周二",
    3 => "周三",
    _ => "其他",   // _ 是弃元(discard),匹配一切
};