🧚♂️全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👨💻004 # 第四单元 流程控制语句上 #
一、本单元知识点概述
二、本单元目标
(Ⅰ)重点知识目标
1.if语句的格式及执行流程
2.switch语句的格式及执行流程
(Ⅱ)能力目标
1.掌握if语句的格式及执行流程
2.掌握switch语句的格式及执行流程
3.了解case的穿透性
三、本单元知识详讲
4.1 流程控制
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果
有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现
我们要完成的功能。
4.1.1 顺序结构的概述★★★
根据代码编写的顺序,从上到下运行。
4.1.2 顺序结构的执行顺序★★★
案例演示:
1 public static void main(String[] args){
2 //顺序执行,根据编写的顺序,从上到下运行
3 System.out.println(1);
4 System.out.println(2);
5 System.out.println(3);
6 }
4.2 判断语句
4.2.1 if语句的格式★★
if语句第一种格式:
1 if(关系表达式){
2 语句体;
3 }
4.2.2 if语句的执行流程★★★
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
案例演示:
1 public static void main(String[] args){
2 System.out.println("开始");
3 // 定义两个变量
4 int a = 10;
5 int b = 20;
6 //变量使用if判断
7 if (a == b){
8 System.out.println("a等于b");
9 }
10 int c = 10;
11 if(a == c){
12 System.out.println("a等于c");
13 }
14 System.out.println("结束");
15 }
4.2.3 if...else语句的格式★★
if语句第二种格式:
1 if(关系表达式) {
2 语句体1;
3 }else {
4 语句体2;
5 }
4.2.4 if...else语句的执行流程★★★★
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
案例演示:
1 public static void main(String[] args){
2 // 判断给定的数据是奇数还是偶数
3 // 定义变量
4 int a = 1;
5 if(a % 2 == 0) {
6 System.out.println("a是偶数");
7 } else{
8 System.out.println("a是奇数");
9 }
10 System.out.println("结束");
11 }
4.2.5 if..else if...else语句的格式★★
if语句第三种格式:
1 if (判断条件1) {
2 执行语句1;
3 } else if (判断条件2) {
4 执行语句2;
5 }
6 ...
7 else if (判断条件n) {
8 执行语句n;
9 } else {
10 执行语句n+1;
11 }
4.2.6 if..else if...else语句的执行流程★★★
执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。
案例演示:
1 public static void main(String[] args) {
2 // x和y的关系满足如下:
3 // x>=3 y = 2x + 1;
4 //‐1<=x<3 y = 2x;
5 // x<=‐1 y = 2x – 1;
6 // 根据给定的x的值,计算出y的值并输出。
7 // 定义变量
8 int x = 5;
9 int y;
10 if (x>= 3) {
11 y = 2 * x + 1;
12 } else if (x >= ‐1 && x < 3) {
13 y = 2 * x;
14 } else {
15 y = 2 * x ‐ 1;
16 }
17 System.out.println("y的值是:"+y); }
4.2.7 判断语句案例★★★
指定考试成绩,判断学生等级
90-100 优秀
80-89 好
70-79 良
60-69 及格
60以下 不及格
4.2.8 代码演示★★★
1 public static void main(String[] args) {
2 int score = 100;
3 if(score<0 || score>100){
4 System.out.println("你的成绩是错误的");
5 }else if(score>=90 && score<=100){
6 System.out.println("你的成绩属于优秀");
7 }else if(score>=80 && score<90){
8 System.out.println("你的成绩属于好");
9 }else if(score>=70 && score<80){
10 System.out.println("你的成绩属于良");
11 }else if(score>=60 && score<70){
12 System.out.println("你的成绩属于及格");
13 }else { System.out.println("你的成绩属于不及格");
14 }
15 }
4.3 选择语句
4.3.1 switch语句格式★★
switch语句格式:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
4.3.2 switch执行流程★★★★
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结
束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
案例演示:
1 public static void main(String[] args) {
2 //定义变量,判断是星期几
3 int weekday = 6;
4 //switch语句实现选择
5 switch(weekday) {
6 case 1:
7 System.out.println("星期一");
8 break;
9 case 2:
10 System.out.println("星期二");
11 break;
12 case 3:
13 System.out.println("星期三");
14 break;
15 case 4:
16 System.out.println("星期四");
17 break;
18 case 5:
19 System.out.println("星期五");
20 break;
21 case 6:
22 System.out.println("星期六");
23 break;
24 case 7:
25 System.out.println("星期日");
26 break;
27 default:
28 System.out.println("你输入的数字有误");
29 break;
30 }
switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
4.3.3 case的穿透性★★★★
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运
行,直到遇到break,或者整体switch结束。
1 public static void main(String[] args) {
2 int i = 5;
3 switch (i){
4 case 0:
5 System.out.println("执行case0");
6 break;
7 case 5:
8 System.out.println("执行case5");
9 case 10:
10 System.out.println("执行case10");
11 default:
12 System.out.println("执行default");
13 }
上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接
运行完整体switch。
由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。
四、本单元知识总结
1. if语句的格式及执行流程。
2. switch语句的格式及执行流程。
最新文章
- 如何安装一个优秀的BUG管理平台——真的是手把手教学!
- Symmetric Tree
- GUID 全局统一标识符的介绍
- HTML5地理定位
- Android开发常见错误及技巧
- Jeff Somers&#39;s N Queens Solutions 最快的n皇后算法
- WP小游戏产品海外发行经验小结
- Java 常用排序算法/程序员必须掌握的 8大排序算法
- 关于line box,inline box,line-height,vertical-align之间的关系
- Ubuntu下配置和编译cpp-ethereum客户端
- Java之阶乘数的计算
- C# DataGridView控件 动态添加新行
- js setInterval和clearInterval 的使用
- ActiveMQ持久化方式(转)
- Java集合(一) CopyOnWriteArrayList
- mongodb 3.4 分片 一主 一副 一仲 鉴权集群部署.
- Java工具类——通过配置XML验证Map
- CentOS 7 本地安装kubernetes
- 读HashMap 源码(jdk11)的见解
- json-lib转化java对象,是否转化为null的属性
热门文章
- 7、二进制安装K8s之部署kube-proxy
- 十八:使用JDBC进行批处理
- 【C#】Enum,Int,String的互相转换 枚举转换
- Javascript - Vue - webpack + vue-cil
- MAC下Jetbrains编译器无法打开问题解决
- 3k+2形式的素数相关的两个命题的证明
- noip模拟46
- 学了这么多年C语言,你真的知道全局变量,局部变量,静态变量,本地函数,外部函数是如何区分标识的吗?
- Spring表达式
- python模块--__future__(向上兼容模块)