C Sharp 条件语句
外观
C#条件语句[编辑 | 编辑源代码]
条件语句是C#编程中用于基于不同条件执行不同代码块的核心控制流结构。通过逻辑判断,程序可以动态选择执行路径,这是实现业务逻辑分支的基础。
基本概念[编辑 | 编辑源代码]
条件语句通过评估布尔表达式(结果为true或false)来决定程序执行方向。C#提供以下主要条件结构:
- if语句 - 基础条件判断
- if-else语句 - 双分支选择
- else-if阶梯 - 多条件判断
- switch语句 - 多路分支选择
if语句[编辑 | 编辑源代码]
最简单的条件结构,语法如下:
if (condition)
{
// 当condition为true时执行的代码
}
示例:
int temperature = 25;
if (temperature > 20)
{
Console.WriteLine("天气温暖");
}
输出:
天气温暖
if-else语句[编辑 | 编辑源代码]
双分支条件结构:
if (condition)
{
// condition为true时执行
}
else
{
// condition为false时执行
}
实际案例 - 用户登录验证:
string storedPassword = "Secure123";
string inputPassword = Console.ReadLine();
if (inputPassword == storedPassword)
{
Console.WriteLine("登录成功!");
}
else
{
Console.WriteLine("密码错误!");
}
else-if阶梯[编辑 | 编辑源代码]
处理多个互斥条件:
if (condition1)
{
// 代码块1
}
else if (condition2)
{
// 代码块2
}
else
{
// 默认代码块
}
成绩评级系统示例:
int score = 85;
if (score >= 90)
{
Console.WriteLine("A级");
}
else if (score >= 80)
{
Console.WriteLine("B级");
}
else if (score >= 70)
{
Console.WriteLine("C级");
}
else
{
Console.WriteLine("需努力");
}
输出:
B级
switch语句[编辑 | 编辑源代码]
当需要基于单个变量的多个值进行分支时使用:
switch (expression)
{
case value1:
// 代码块1
break;
case value2:
// 代码块2
break;
default:
// 默认代码块
break;
}
工作日判断示例:
DayOfWeek today = DateTime.Today.DayOfWeek;
switch (today)
{
case DayOfWeek.Monday:
Console.WriteLine("每周会议日");
break;
case DayOfWeek.Friday:
Console.WriteLine("周末准备日");
break;
case DayOfWeek.Saturday:
case DayOfWeek.Sunday:
Console.WriteLine("休息日");
break;
default:
Console.WriteLine("工作日");
break;
}
条件运算符(三元运算符)[编辑 | 编辑源代码]
简化的条件表达式:
variable = (condition) ? expression1 : expression2;
示例:
int age = 20;
string status = (age >= 18) ? "成人" : "未成年";
Console.WriteLine(status);
输出:
成人
嵌套条件语句[编辑 | 编辑源代码]
条件结构可以多层嵌套,但需注意可读性:
if (condition1)
{
if (condition2)
{
// 嵌套代码块
}
}
权限检查示例:
bool isAuthenticated = true;
bool isAdmin = false;
if (isAuthenticated)
{
if (isAdmin)
{
Console.WriteLine("显示管理员面板");
}
else
{
Console.WriteLine("显示用户面板");
}
}
else
{
Console.WriteLine("请先登录");
}
流程图表示[编辑 | 编辑源代码]
以下mermaid图展示了if-else逻辑流程:
最佳实践[编辑 | 编辑源代码]
1. 保持条件简单,复杂逻辑应拆分为多个布尔变量 2. 避免深层嵌套(一般不超过3层) 3. 对范围检查,使用边界值分析 4. switch语句应始终包含default case 5. 优先使用switch而非多个else-if当处理枚举或固定值集合时
性能考虑[编辑 | 编辑源代码]
- 编译器通常会将switch语句优化为跳转表,比多个if-else效率更高
- 布尔表达式使用短路求值:在逻辑与(&&)中,遇到false即停止;在逻辑或(||)中,遇到true即停止
数学表达式[编辑 | 编辑源代码]
条件语句中可使用复杂数学表达式,例如:
对应代码实现:
double a = 1, b = -3, c = 2;
double discriminant = b * b - 4 * a * c;
if (discriminant > 0)
{
Console.WriteLine("两个不同实根");
}
else if (discriminant == 0)
{
Console.WriteLine("一个实根");
}
else
{
Console.WriteLine("无实根");
}
总结[编辑 | 编辑源代码]
C#条件语句提供了灵活的程序控制能力,通过合理组合不同结构可以处理各种业务逻辑分支场景。初学者应重点掌握基本语法和逻辑关系,而高级开发者需关注代码可读性和性能优化。