Java程序设计:顺序结构与分支结构
目录
教学目标
教学重难点
教学过程
一、复习旧课
二、程序的基本结构概述
三、if 单分支语句
1. 语法格式:
2. 执行流程:
3. 代码示例:
4. 学生练习:
四、if 双分支语句(if-else)
1. 语法格式:
2. 执行流程:
3. 代码示例:
4. 学生练习:
五、if 多条件判断语句(if-else if-else)
1. 语法格式:
2. 执行流程:
3. 代码示例:
4. 注意事项:
5. 学生练习:
六、switch 条件语句
1. 语法格式:
2. 特点与要求:
3. 代码示例:
4. break 的作用演示:
5. if 与 switch 的选择:
6. 学生练习:
七、综合案例演示
八、课堂总结与作业布置
1. 课堂总结:
2. 作业布置:
教学反思(课后填写)
教学目标
- 理解程序的三种基本结构(顺序、分支、循环)及顺序结构的执行流程
- 掌握 if 单分支语句的语法和使用场景
- 掌握 if 双分支语句(if-else)的语法和执行逻辑
- 学会使用 if 多条件判断语句(if-else if-else)处理多分支情况
- 掌握 switch 条件语句的语法、执行流程及适用场景
- 能够根据实际问题选择合适的分支结构解决问题
教学重难点
- 重点:if 语句的三种形式、switch 语句的使用
- 难点:if 多分支语句的执行逻辑、switch 语句中 break 的作用、分支结构的嵌套使用
教学过程
一、复习旧课
- 回顾各类运算符的使用方法(重点是关系运算符和逻辑运算符)
- 快速提问:"如何判断一个整数是否是偶数?"
- 导入:"我们已经能进行条件判断,今天学习如何根据判断结果执行不同操作"
二、程序的基本结构概述
-
程序的三种基本结构:
- 顺序结构:程序从上到下依次执行
- 分支结构:根据条件选择执行不同代码块
- 循环结构:重复执行某段代码(后续课程讲解)
-
顺序结构演示:
public class SequenceDemo {public static void main(String[] args) {System.out.println("第一步:程序开始");int a = 10;int b = 20;int sum = a + b;System.out.println("两数之和:" + sum);System.out.println("最后一步:程序结束");} }
- 说明:代码按照书写顺序依次执行,每条语句执行一次
三、if 单分支语句
1. 语法格式:
if (条件表达式) {// 条件为true时执行的代码块
}
- 条件表达式必须是布尔类型(true 或 false)
- 若代码块只有一条语句,大括号可以省略(但建议始终使用)
2. 执行流程:
- 计算条件表达式的值
- 如果为 true,执行代码块中的语句
- 如果为 false,跳过代码块,执行 if 语句后面的代码
3. 代码示例:
public class IfSingleDemo {public static void main(String[] args) {int score = 85;// 判断成绩是否大于等于60分if (score >= 60) {System.out.println("成绩合格");System.out.println("可以获得学分");}System.out.println("程序执行完毕");// 单语句情况(不推荐省略大括号)int age = 18;if (age >= 18)System.out.println("已成年");}
}
4. 学生练习:
- 编写程序:定义一个整数变量,使用 if 语句判断该数是否为正数,若是则输出 "这是一个正数"
四、if 双分支语句(if-else)
1. 语法格式:
if (条件表达式) {// 条件为true时执行的代码块
} else {// 条件为false时执行的代码块
}
2. 执行流程:
- 计算条件表达式的值
- 如果为 true,执行 if 代码块,跳过 else 代码块
- 如果为 false,执行 else 代码块,跳过 if 代码块
- 两个代码块必定执行且仅执行一个
3. 代码示例:
public class IfElseDemo {public static void main(String[] args) {int score = 55;// 判断成绩是否合格if (score >= 60) {System.out.println("成绩合格");System.out.println("可以获得学分");} else {System.out.println("成绩不合格");System.out.println("需要补考");}// 判断一个数是否为偶数int num = 7;if (num % 2 == 0) {System.out.println(num + "是偶数");} else {System.out.println(num + "是奇数");}}
}
4. 学生练习:
- 编写程序:定义一个整数变量表示年龄,使用 if-else 判断是否成年,输出相应提示
五、if 多条件判断语句(if-else if-else)
1. 语法格式:
if (条件表达式1) {// 条件1为true时执行
} else if (条件表达式2) {// 条件1为false且条件2为true时执行
} else if (条件表达式3) {// 前面条件都为false且条件3为true时执行
} else {// 所有条件都为false时执行(可选)
}
2. 执行流程:
- 从上到下依次判断条件表达式
- 当遇到第一个为 true 的条件时,执行对应的代码块
- 执行完毕后,跳过整个 if-else if-else 结构
- 如果所有条件都为 false,若有 else 则执行 else 代码块
3. 代码示例:
public class IfElseIfDemo {public static void main(String[] args) {int score = 85;char grade;// 根据成绩判断等级if (score >= 90) {grade = 'A';} else if (score >= 80) {grade = 'B';} else if (score >= 70) {grade = 'C';} else if (score >= 60) {grade = 'D';} else {grade = 'F';}System.out.println("成绩:" + score + ",等级:" + grade);}
}
4. 注意事项:
- 条件判断有顺序性,范围大的条件应放在后面
- 示例:错误的判断顺序会导致逻辑错误
// 错误示例 if (score >= 60) {// 会导致所有>=60的成绩都被判断为D } else if (score >= 70) {// 永远不会执行 }
5. 学生练习:
- 编写程序:根据用户输入的月份(简化为整数变量),判断该月份属于哪个季节(春:3-5,夏:6-8,秋:9-11,冬:12-2)
六、switch 条件语句
1. 语法格式:
switch (表达式) {case 值1:// 表达式的值等于值1时执行的代码break;case 值2:// 表达式的值等于值2时执行的代码break;// ...更多casedefault:// 表达式的值与所有case值都不匹配时执行的代码break;
}
2. 特点与要求:
- 表达式的结果必须是整数类型(byte、short、int、char)、枚举类型或 String 类型(Java 7+)
- case 后的值必须是常量或字面量,且不能重复
- break 语句用于跳出 switch 结构,若省略会发生 "穿透" 现象
3. 代码示例:
public class SwitchDemo {public static void main(String[] args) {int month = 3;String season;switch (month) {case 12:case 1:case 2:season = "冬季";break;case 3:case 4:case 5:season = "春季";break;case 6:case 7:case 8:season = "夏季";break;case 9:case 10:case 11:season = "秋季";break;default:season = "无效月份";break;}System.out.println(month + "月属于" + season);// String类型的switch示例String day = "MON";switch (day) {case "MON":case "TUE":case "WED":case "THU":case "FRI":System.out.println("工作日");break;case "SAT":case "SUN":System.out.println("休息日");break;}}
}
4. break 的作用演示:
int num = 2;
switch (num) {case 1:System.out.println("执行case 1");case 2:System.out.println("执行case 2");case 3:System.out.println("执行case 3");default:System.out.println("执行default");
}
// 输出结果(因缺少break导致穿透):
// 执行case 2
// 执行case 3
// 执行default
5. if 与 switch 的选择:
- if 适用范围更广,可判断任意条件
- switch 适用于判断固定值的相等性,结构更清晰
- 多条件判断时,根据具体情况选择合适的结构
6. 学生练习:
- 使用 switch 语句实现:根据输入的星期几数字(1-7),输出对应的星期名称(如 1→"星期一")
七、综合案例演示
public class ComprehensiveDemo {public static void main(String[] args) {// 模拟学生成绩管理系统中的成绩处理String studentName = "张三";int score = 88;System.out.println("学生姓名:" + studentName);System.out.println("考试成绩:" + score);// 判断是否及格if (score < 60) {System.out.println("成绩评定:不及格");System.out.println("需要参加补考");} else {System.out.println("成绩评定:及格");// 优良判断if (score >= 90) {System.out.println("等级:优秀");} else if (score >= 80) {System.out.println("等级:良好");} else if (score >= 70) {System.out.println("等级:中等");} else {System.out.println("等级:及格");}// 使用switch判断奖学金等级int scholarshipLevel;if (score >= 90) {scholarshipLevel = 1;} else if (score >= 80) {scholarshipLevel = 2;} else if (score >= 70) {scholarshipLevel = 3;} else {scholarshipLevel = 0;}switch (scholarshipLevel) {case 1:System.out.println("获得一等奖学金");break;case 2:System.out.println("获得二等奖学金");break;case 3:System.out.println("获得三等奖学金");break;default:System.out.println("未获得奖学金");}}}
}
八、课堂总结与作业布置
1. 课堂总结:
- 顺序结构是程序的基础,代码按顺序执行
- if 单分支用于有条件地执行一段代码
- if-else 用于二选一的情况
- if-else if-else 用于多条件判断
- switch 适用于判断固定值的多分支情况,注意 break 的使用
2. 作业布置:
- 编写程序:输入一个整数,判断它是正数、负数还是零
- 使用 if-else if-else 结构实现一个简单的计算器(加、减、乘、除)
- 使用 switch 语句实现:根据月份判断该月有多少天(简化处理,不考虑闰年)
教学反思(课后填写)
- 学生对哪种分支结构理解困难
- switch 语句中的 break 使用是否容易出错
- 多条件判断的逻辑是否清晰
- 课堂练习的难度是否适中
- 下次课程需要改进的教学方法