C#的判断语句总结

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 配对,需注意缩进避免歧义‌
相关推荐
软件黑马王子2 分钟前
20.Resources资源加载:基本实现
开发语言·前端框架·c#
李少兄26 分钟前
Java 中只有值传递吗?
java·开发语言·python
张人玉1 小时前
基于 C# / .NET 8 + Windows Forms + SQLite 的桌面银行业务演示系统——华夏示范银行管理系统
windows·sqlite·c#·.net
可乐鸡翅yeah_1 小时前
hls.js 播放质量埋点实战,采集卡顿、起播、错误指标定位线上用户问题
开发语言·前端·javascript·ecmascript·音视频·m3u8·音视频在线播放
1314lay_10071 小时前
C#调用Sql Server存储过程,并且使用传入表结构
数据库·经验分享·笔记·sqlserver·c#
szarron1 小时前
RF Demo Kit|NanoVNA 射频演示测试板完整上手教程,滤波器、衰减器、SOLT 校准学习板
开发语言·人工智能·学习·php·射频工程·频谱仪
边境悍匪1 小时前
蜗牛学苑 Java 智能体学习 Day39|SpringAI 会话存储、Function‑Call 工具调用、MCP 思维导图复盘
java·开发语言·spring boot·学习·阿里云
慧都小妮子1 小时前
.NET 报表控件选型对比:Stimulsoft 与 FastReport 怎么选
c#·.net·报表开发·数据可视化·报表控件·报表引擎选型
万物智能信息科技2 小时前
RK3568 的多路显示移植—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
linux·开发语言·华为·开源·harmonyos
蓝悦无人机2 小时前
Qt Design Studio(QDS)4.8.2项目文件结构详解
开发语言·qt·qt creator·qds·项目文件结构·qtc