判断语句,枚举
掌握 if-else 和 switch 两种分支结构
理解枚举的定义与作用
能结合枚举和 switch 编写分支逻辑
核心讲解
(1)if-else 分支
单分支、双分支、多分支
条件必须是 bool 类型
多分支从上到下判断,满足一个就不再往下
(2)switch 选择
适合固定值的多分支场景,结构更清晰。
支持类型:int、string、bool、枚举
case 值不能重复,必须是常量
每个 case 结尾加
break,不然会穿透default:所有 case 都不匹配时执行
(3)枚举 enum
用来定义一组固定的常量选项,强类型,比字符串 / 数字更安全、更清晰。
命名:帕斯卡命名
默认 int 类型,第一个值 0,依次递增
可以手动指定值
常和 switch 配合使用
操作步骤
编写 if-else 多分支成绩等级判断
定义枚举,配合 switch 实现状态判断
运行验证
代码示例
// 定义枚举
enum WeekDay
{
Monday, // 0
Tuesday, // 1
Wednesday, // 2
Thursday,
Friday,
Saturday,
Sunday
}
enum OrderStatus
{
Pending = 10,
Paid = 20,
Shipped = 30,
Completed = 40
}
// ===== if-else 多分支 =====
int score = 85;
if (score >= 90)
{
Console.WriteLine("优秀");
}
else if (score >= 80)
{
Console.WriteLine("良好");
}
else if (score >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
// ===== switch + 枚举 =====
OrderStatus status = OrderStatus.Paid;
switch (status)
{
case OrderStatus.Pending:
Console.WriteLine("待付款");
break;
case OrderStatus.Paid:
Console.WriteLine("已付款");
break;
case OrderStatus.Shipped:
Console.WriteLine("已发货");
break;
case OrderStatus.Completed:
Console.WriteLine("已完成");
break;
default:
Console.WriteLine("状态错误");
break;
}
// 枚举转字符串/数字
Console.WriteLine("\n枚举名:" + status.ToString());
Console.WriteLine("枚举值:" + (int)status);
Console.ReadKey();
常见误区
if 条件写赋值语句:
if (a = 5)会报错,==才是等于判断switch 忘记加 break:会发生 case 穿透,继续执行后面的 case,绝大多数情况都要加 break
枚举是字符串:枚举是独立的值类型,不是字符串,转字符串要
ToString()枚举从 1 开始记:默认第一个是 0,不是 1,手动指定值更稳妥
课后练习
用 if-else 实现:输入一个数字,判断是正数、负数还是零
定义一个季节枚举,用 switch 输出每个季节的特点
思考:if-else 和 switch 分别适合什么场景?

