第2章——程序流程控制
【教学内容】
2-1语句与复合语句
2-2顺序结构
2-3分支结构
2-4循环结构
2-5循环中的跳转语句
2-6递归算法
【重点与难点】重点是分支结构、循环结构的理解。难点是递归算法。
【能力要求】(1)掌握分支结构、循环结构的语法(2)掌握递归算法的
各位同学,今天我们学习一个全新的知识——程序流程控制。什么是流程控制呢?说白了就是控制程序的执行顺序。
先给同学们介绍一下,程序有哪些流程控制、以及Java提供了哪些方案来控制程序的执行顺序?
程序的流程控制一般分为3种:顺序结构、分支结构、循环结构
- 顺序结构:就是不加任何控制,代码从main方法开始自上而下执行
- 分支结构:就是根据条件判断是true还是false,有选择性的执行哪些代码。在Java语言中提供了两个格式if 、 switch
- 循环结构:就是控制某一段代码重复执行。在Java语言中提供了三种格式,for、while、do-while
以上就是我们今天要学习的主要课程内容
一,简单语句与复合语句
Java语言中语句可以是以分号“;”结尾的简单语句,也可以是用一对花括号“{}”括起来的复合语句。
复合语句:由多个简单语句构成的语句块
示例:
public static void main(String[] args) { int a = 10;//简单语句 …… { //复合语句 int b; int a; //错误,因变量a前面已定义 …… } }
Java语言的复合语句与C++复合语句不同的是:Java语言不允许在两个嵌套的复合语句内声明两个同名的变量.
二、分支结构
2.1 if分支
各位同学,接下来我们学习分支结构的第一种形式——if分支。
if它的作用,是用于对条件进行判断,判断的结果只可能有两个值true或者false,然后根据条件判断的结果来决定执行那段代码。
1. if分支的应用场景有哪些呢?
比如,在火车站、地铁站等公共场所,会对过往的旅客测体温。如果体温在37度以内,就属于正常的;如果体温在37读以上,测体温的装置就会报警。
再比如,你在使用微信付钱时,微信内部的程序会先判断你的余额是否足够,如果足够就可以支付成功;如果余额不足,就会提示支付失败。
2. if分支的格式
接下来,我们来看一看if分支在Java语言中长什么样子呢?在Java中if分支有三种格式。
接下来我们用一些实际案例给大家演示一下if语句的应用,以及每一种if语句的执行流程。
3. if 第一种形式
if 第一种形式的代码格式,和执行流程如下图所示
if 第一种形式执行流程如下: 如果 条件表达式 为true,就执行下面的语句体 如果 条件表达式 为false,就不执行
// 需求:测量用户体温,发现体温高于37度就报警。 double t = 36.9; if(t > 37){ System.out.println("这个人的温度异常,把他赶紧带走~~"); }
4. if 第二种形式
if 第二种形式的代码格式,和执行流程如下图所示
if 第二种形式执行流程如下: 如果 条件表达式 为true,就执行下面的语句体1 如果 条件表达式 为false,就执行else下面的语句体2
// 需求2:发红包,你的钱包余额是99元,现在要发出90元 // 如果钱够触发发红包的动作,如果钱不够,则提示:余额不足。 double money = 19; if(money >= 90){ System.out.println("发红包成功了~"); }else { System.out.println("余额不足~~"); }
5. if 第三种形式
if 第三种形式的代码格式,和执行流程如下图所示
if 第三种形式执行流程如下: 如果 条件表达式1 为true,就执行下面的代码1; 如果 条件表达式1 为false,就继续判断条件表达式2; 如果 条件表达式2 为true,就执行下面的语句体; 如果 条件表达式2 为false,就继续判断条件语句体3; 如果 条件表达式3 为true,就执行下面的语句体3 如果 条件表达式3 为false,就继续判断后面的表达式; .... 如果前面所有条件表达式判断都为false,就执行最后的else语句中的代码
// 需求3:某个公司有一个绩效系统,根据员工的打分输出对应的绩效级别。[0,60) D [60,80) C [80,90) B [90,100] A int score = 298; if(score >= 0 && score < 60) { System.out.println("您的绩效级别是: D"); }else if(score >= 60 && score < 80){ System.out.println("您的绩效级别是: C"); }else if(score >= 80 && score < 90){ System.out.println("您的绩效级别是: B"); }else if(score >= 90 && score <= 100){ System.out.println("您的绩效级别是: A"); }else { System.out.println("您录入的分数有毛病~~"); }
6. if 使用的几个常见问题
同学们在第一次写if 代码时,经常一不小心会出现一些问题。下面把同学们可能出现的问题给大家看一看,以后大家要避免出现这些问题。
- 第1个问题:if的()后面不能写分号
;
否则if下面的语句与if无关
- 第2个问题:if后面的大括号,如果只有一行代码,大括号可以省略
7. if 分支小结
关于if分支结构的几种格式,以及各种格式的执行流程,还有if在什么场景下使用我们就讲完了。下面我们总结一下
- if分支有什么作用?举几个应用场景?
- if作用:if分支可以根据条件,选择执行某段程序 - if应用场景 比如1:测量用户体温,发现体温高于37度就报警 比如2:发红包,你的钱包余额是99元,现在要发出90元 比如3:根据员工的绩效打分输出对应的绩效级别
- if分支的格式有几种,执行流程是什么样的?
2.2 switch分支
学完if 分支之后,接下来我们来学习分支结构的第二种形式——switch分支。
1. switch分支的执行流程
switch 分支的作用,是通过比较值来决定执行哪条分支代码。先看一下switch分支的格式和执行流程
下面通过案例来演示一下
/* 需求:做个电子备忘录,在控制台分别输出周一到周五的工作安排 周一:埋头苦干,解决bug 周二: 请求大牛程序员帮忙 周三:今晚啤酒、龙虾、小烧烤 周四:主动帮助新来的女程序解决bug 周五:今晚吃鸡 周六:与王婆介绍的小芳相亲 周日:郁郁寡欢、准备上班。 */
String week = "周三"; switch (week){ case "周一": System.out.println("埋头苦干,解决bug"); break; case "周二": System.out.println("请求大牛程序员帮忙"); break; case "周三": System.out.println("今晚啤酒、龙虾、小烧烤"); break; case "周四": System.out.println("主动帮助新来的女程序解决bug"); break; case "周五": System.out.println("今晚吃鸡"); break; case "周六": System.out.println("与王婆介绍的小芳相亲"); break; case "周日": System.out.println("郁郁寡欢、准备上班"); break; default: System.out.println("您输入的星期信息不存在~~~"); }
最新Java基础系列课程--Day03-Java程序流程控制(二)https://developer.aliyun.com/article/1423481