教学目标:
- 掌握条件运算符(三元运算符)的语法及使用场景
- 熟练运用if-else、switch实现程序分支逻辑
- 理解for/while/do-while循环的执行机制及差异
- 掌握break/continue/return在流程控制中的作用
- 通过案例实践培养代码规范编写能力
第一部分:条件运算符(三元运算符)
语法结构:
java
结果变量 = 布尔表达式 ? 表达式1 : 表达式2; |
执行规则:
- 当布尔表达式为true时,整个表达式取
表达式1
的值 - 当布尔表达式为false时,取
表达式2
的值
教学示例:
java
// 示例1:数值比较 |
int a = 10, b = 20; |
int max = (a > b) ? a : b; // max=20 |
// 示例2:类型转换 |
String result = (score >= 60) ? "及格" : "不及格"; |
// 示例3:链式操作(需谨慎) |
int level = (score > 90) ? 1 : (score > 60) ? 2 : 3; |
注意事项:
- 表达式1和表达式2的类型必须兼容(可自动转换)
- 避免嵌套过深影响可读性(建议不超过2层)
- 不能用于执行语句,只能用于赋值表达式
常见错误:
java
// 错误:三元运算符不能直接执行语句 |
(a > b) ? System.out.println("a大") : System.out.println("b大"); |
第二部分:分支语句
1. if语句家族
语法结构:
java
// 单分支 |
if (condition) { |
// 代码块 |
} |
// 双分支 |
if (condition) { |
// 代码块1 |
} else { |
// 代码块2 |
} |
// 多分支 |
if (condition1) { |
// 代码块1 |
} else if (condition2) { |
// 代码块2 |
} else { |
// 默认代码块 |
} |
教学案例:
java
// 成绩分级判断 |
if (score >= 90) { |
grade = 'A'; |
} else if (score >= 80) { |
grade = 'B'; |
} else if (score >= 60) { |
grade = 'C'; |
} else { |
grade = 'D'; |
} |
2. switch语句(JDK17新特性)
传统语法:
java
switch (expression) { |
case value1: |
// 代码块 |
break; |
case value2: |
// 代码块 |
break; |
default: |
// 默认代码块 |
} |
增强特性(JDK12+):
java
// 箭头语法(无穿透) |
String dayType = switch (day) { |
case MONDAY, FRIDAY -> "工作日"; |
case SUNDAY -> "休息日"; |
default -> "普通日"; |
}; |
// 返回值特性 |
int num = switch (season) { |
case SPRING, SUMMER -> 1; |
case AUTUMN -> 2; |
case WINTER -> 3; |
}; |
注意事项:
- case值必须为常量表达式
- JDK14+支持String、枚举类型
- 穿透现象处理(是否需要break)
第三部分:循环语句
1. for循环
基础语法:
java
for (初始化; 条件判断; 增量操作) { |
// 循环体 |
} |
增强for循环:
java
for (元素类型 变量名 : 集合/数组) { |
// 操作变量 |
} |
2. while循环
java
while (条件表达式) { |
// 循环体 |
} |
3. do-while循环
java
do { |
// 循环体 |
} while (条件表达式); |
执行差异对比:
循环类型 | 至少执行次数 | 适用场景 |
---|---|---|
for | 0次 | 已知循环次数 |
while | 0次 | 条件导向的循环 |
do-while | 1次 | 必须执行一次的场景 |
第四部分:跳转语句
1. break语句
- 终止当前循环或switch语句
- 带标签的break(多层循环跳出)
java
outer: |
for (...) { |
for (...) { |
break outer; // 跳出外层循环 |
} |
} |
2. continue语句
- 跳过本次循环剩余代码,进入下次循环
- 结合标签使用(JDK1.5+)
3. return语句
- 立即结束当前方法执行
- 可返回指定值或void
课堂练习
- 使用条件运算符实现:输入年份判断是否为闰年
- 编写成绩分级程序(使用switch表达式)
- 计算1-100所有偶数的和(使用3种循环实现)
- 模拟用户登录系统(最多3次机会,使用带标签的break)
课后作业
- 编写程序:输入月份数字,输出对应季节(使用switch表达式)
- 实现九九乘法表(使用嵌套for循环)
- 优化以下代码:
java
int count = 0; |
for (int i=1; i<=100; i++) { |
if (i%2 == 0) { |
count++; |
} |
} |
教学反思
- 通过实际编码演示理解条件运算符与if-else的性能差异
- 强调switch表达式在模式匹配(JDK17+)中的扩展应用
- 结合代码规范讲解循环变量的作用域控制
板书设计:
Java控制流语句 |
├─ 条件运算符 → 简洁分支 |
├─ 分支语句 |
│ ├─ if-else → 多条件判断 |
│ └─ switch → 多值匹配(新特性) |
├─ 循环语句 |
│ ├─ for → 计数循环 |
│ ├─ while → 条件循环 |
│ └─ do-while → 确保执行 |
└─ 跳转语句 |
├─ break → 强制退出 |
├─ continue → 跳过本次 |
└─ return → 方法终止 |
教学评价:
通过课堂练习完成度(70%)和课后作业正确率(85%)评估,重点考察:
- 条件运算符的合理使用场景判断
- switch表达式返回值的应用能力
- 循环嵌套的边界条件处理
- 跳转语句对程序流程的影响分析