🧚♂️全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👨💻004 # 第四单元 流程控制语句上 #
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.1 if语句的格式★★
if语句第一种格式:
1 if(关系表达式){ 2 语句体; 3 }
4.2.2 if语句的执行流程★★★
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
案例演示:
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
如果是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 }
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语句的执行流程★★★
执行流程
如果是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以下 不及格
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语句格式★★
4.3.2 switch执行流程★★★★
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结
束。
案例演示:
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后可以接收字符串。
在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,直接
由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。