Java流程控制语句详解

发布于:2025-07-04 ⋅ 阅读:(13) ⋅ 点赞:(0)

教学目标

  1. 掌握条件运算符(三元运算符)的语法及使用场景
  2. 熟练运用if-else、switch实现程序分支逻辑
  3. 理解for/while/do-while循环的执行机制及差异
  4. 掌握break/continue/return在流程控制中的作用
  5. 通过案例实践培养代码规范编写能力

第一部分:条件运算符(三元运算符)

语法结构


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. 表达式1和表达式2的类型必须兼容(可自动转换)
  2. 避免嵌套过深影响可读性(建议不超过2层)
  3. 不能用于执行语句,只能用于赋值表达式

常见错误


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;
};

注意事项

  1. case值必须为常量表达式
  2. JDK14+支持String、枚举类型
  3. 穿透现象处理(是否需要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

课堂练习

  1. 使用条件运算符实现:输入年份判断是否为闰年
  2. 编写成绩分级程序(使用switch表达式)
  3. 计算1-100所有偶数的和(使用3种循环实现)
  4. 模拟用户登录系统(最多3次机会,使用带标签的break)

课后作业

  1. 编写程序:输入月份数字,输出对应季节(使用switch表达式)
  2. 实现九九乘法表(使用嵌套for循环)
  3. 优化以下代码:

java

int count = 0;
for (int i=1; i<=100; i++) {
if (i%2 == 0) {
count++;
}
}

教学反思

  1. 通过实际编码演示理解条件运算符与if-else的性能差异
  2. 强调switch表达式在模式匹配(JDK17+)中的扩展应用
  3. 结合代码规范讲解循环变量的作用域控制

板书设计


Java控制流语句
├─ 条件运算符 → 简洁分支
├─ 分支语句
│ ├─ if-else → 多条件判断
│ └─ switch → 多值匹配(新特性)
├─ 循环语句
│ ├─ for → 计数循环
│ ├─ while → 条件循环
│ └─ do-while → 确保执行
└─ 跳转语句
├─ break → 强制退出
├─ continue → 跳过本次
└─ return → 方法终止

教学评价
通过课堂练习完成度(70%)和课后作业正确率(85%)评估,重点考察:

  1. 条件运算符的合理使用场景判断
  2. switch表达式返回值的应用能力
  3. 循环嵌套的边界条件处理
  4. 跳转语句对程序流程的影响分析


网站公告

今日签到

点亮在社区的每一天
去签到