C#判断语句分类:
csharp
├─ if 语句(基础条件分支)
│ ├─ if
│ ├─ if-else
│ └─ else if(多条件)
├─ switch 语句(多值匹配)
│ ├─ 值类型/字符串/枚举
│ └─ switch 表达式(C# 8.0+)
└─ 三元运算符(简化条件赋值)
一、if 语句
1. 基本形式
- 语法:通过布尔表达式控制代码分支
csharp
if (条件)
{
// 条件为 true 时执行
}
- 示例:
csharp
int number = 5;
if (number > 0)
{
Console.WriteLine("数字是正数"); // 输出结果
}
2. if-else 语句
- 语法:处理两种对立情况
csharp
if (条件)
{
// 条件为 true 时执行
}
else
{
// 条件为 false 时执行
}
- 示例:
csharp
int score = 80;
if (score >= 60)
Console.WriteLine("及格");
else
Console.WriteLine("不及格");
-执行流程:若条件不满足,直接跳转至 else 代码块
3.else if 多条件分支
- 语法:处理多个互斥条件
csharp
if (条件1)
{
// 条件1为 true 时执行
}
else if (条件2)
{
// 条件2为 true 时执行
}
else
{
// 所有条件均不满足时执行
}
- 示例:
csharp
int temperature = 25;
if (temperature > 30)
Console.WriteLine("高温");
else if (temperature < 10)
Console.WriteLine("低温");
else
Console.WriteLine("适宜");
注意:条件按顺序判断,首个满足的条件执行后跳过其他分支
二、switch 语句
1.基本语法
- 作用:基于变量值匹配多个固定选项
csharp
switch (表达式)
{
case 值1:
// 匹配值1时执行
break;
case 值2:
// 匹配值2时执行
break;
default:
// 无匹配值时执行
break;
}
- 示例:
csharp
string day = "Monday";
switch (day)
{
case "Monday":
Console.WriteLine("工作日开始");
break;
case "Saturday":
case "Sunday":
Console.WriteLine("周末");
break;
default:
Console.WriteLine("其他工作日");
break;
}
2.支持的类型与特性
- 类型兼容性:支持整数、字符串、枚举等类型23
- case 合并:多个 case 可共享同一代码块(如 case 1: case 2:)35
- switch 表达式(C# 8.0+):简化语法,返回结果值
csharp
string result = day switch
{
"Monday" => "工作日",
_ => "其他"
};
三、三元条件运算符(?:)
语法与用途
- 形式:条件 ? 表达式1 : 表达式2
- 示例:
csharp
int x = 10, y = 20;
string max = (x > y) ? "x更大" : "y更大";
- 特性:
a. 替代简单 if-else 结构,适用于赋值场景
b. 若条件复杂,建议优先使用 if 语句提升可读性15
四、使用建议
1.代码可读性
- 复杂条件逻辑优先使用 if-else if 或 switch,避免嵌套过深
- 使用括号明确运算优先级(如 if ((a > b) && (c < d)))
2.性能优化
- switch 对固定值匹配效率高于多重 if-else(尤其值较多时)
- 利用 switch 表达式的模式匹配简化代码(C# 8.0+)
3.错误规避
- switch 语句需包含 break 或 return,否则编译报错
- else 始终与最近未匹配的 if 配对,需注意缩进避免歧义