判断语句 和 枚举
掌握 if-else 和 switch 两种判断结构
理解枚举的作用与基本用法
能编写分支逻辑的程序
核心讲解
(1)if-else 判断
和其他语言语法类似,分单分支、双分支、多分支。
条件必须是 boolean 类型,不能像 C 语言写整数
多分支从上到下判断,满足一个就不往下走了
(2)switch 选择
匹配固定值的多分支场景,更清晰。
支持类型:int、char、String、枚举
case 值不能重复,不能是变量
每个 case 结尾加 break,不然会穿透
default:所有 case 都不匹配时执行
(3)枚举 enum
用来定义固定的几个常量选项,比如季节、星期、状态,比常量更安全、更清晰。
枚举值默认大写
限制取值,防止非法值
可以用在 switch 里
代码示例
public class JudgeDemo {
// 定义枚举
enum WeekDay {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public static void main(String[] args) {
// ===== if-else =====
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// ===== switch =====
int level = 2;
switch (level) {
case 1:
System.out.println("初级");
break;
case 2:
System.out.println("中级");
break;
case 3:
System.out.println("高级");
break;
default:
System.out.println("级别错误");
}
// ===== 枚举使用 =====
WeekDay today = WeekDay.FRIDAY;
// 枚举+switch
switch (today) {
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
System.out.println("工作日");
break;
case SATURDAY:
case SUNDAY:
System.out.println("周末");
break;
}
}
}
常见误区
if 条件写赋值语句:
if (a = 5)会报错,必须是 boolean 表达式,== 才是判断switch 忘记加 break:会发生 case 穿透,继续执行后面的 case,绝大多数情况都要加 break
枚举 new 对象:枚举不能 new,直接用
枚举.值switch 用 long、double:switch 不支持 long、float、double,只能用 int、char、String、枚举
课后练习
用 if-else 实现:输入一个数字,判断是正数、负数还是零
用 switch 实现:输入 1-7,输出对应的星期几
定义一个季节枚举,实现判断当前季节的特点
思考:if-else 和 switch 各自适合什么场景?

