Day02
第五章 Java流程控制语句
5.1 概述
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
5.2 顺序结构
5.3 判断语句
5.3.1 if
-
if语句第一种格式:if
if(关系表达式){ 语句式; }
-
执行流程
- 首先判断关系表达式其结果是true还是false
- 如果是true就执行语句体
- 如果是false就不执行语句体
5.3.2 if……else
-
if语句第二种格式:if……else
if(关系表达式){ 语句体1; }else{ 语句体2; }
-
执行流程
- 首先判断关系表达式看其结果是true还是false
- 如果是true就执行语句体1
- 如果是false就执行语句体2
5.3.3 if……else if……else
-
if语句第三种格式:if……else if……else
if(关系表达式){ 语句体1; }else if{ 语句体2; } …… else if{ 语句体n; }else{ 语句体n+1; }
-
执行流程
- 首先判断关系表达式1看其结果是true还是false
- 如果是true就执行语句体1
- 如果是false就继续判断关系表达式2看其结果是true还是false
- 如果是true就执行语句体2
- 如果是false就继续判断关系表达式…看其结果是true还是false
- ……
5.3.4 语句练习
- 指定考试成绩,判断成绩等级
成绩 | 等级 |
---|---|
90-100 | 优秀 |
80-89 | 好 |
70-79 | 良 |
60-69 | 及格 |
60以下 | 不及格 |
public class Demo01Practise{
public static void main(String[] args){
int score = 98;
if(score >= 90 && score <= 100){
System.out.println("优秀");
}else if(score >= 80 && score <= 89){
System.out.println("好");
}else if(score >= 70 && score <= 79){
System.out.println("良");
}else if(score >= 60 && score <= 69){
System.out.println("不及格");
}else{
System.out.println("ERROR");
}
}
}
5.4 选择语句
5.4.1 switch
- switch语句格式:
/**
switch语句使用的注意事项:
1.多个case后面的数值不可以重复
2.switch后面小括号当中只能是下列数据类型
基本数据类型:byte/short/char/int
引用数据类型:String字符串、enum枚举
3.switch语句格式可以很灵活,前后顺序可以颠倒,而且break语句还可以省略。
“匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。”
*/
switch(表达式){
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
……
case 常量值n:
语句体n;
break;
default:
语句体n+1;
break;//最后一个break语句可以省略,但不推荐省略
}
-
执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
5.5 循环语句
5.5.1循环概述
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
5.5.2 for
-
for循环语句格式:
for(初始化语句; 条件判断; 步进语句){ 循环体; } //步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次
5.5.3 while
/*
while循环有一个标准格式,还有一个扩展格式
*/
//标准格式:
while(条件判断){
循环体;
}
//扩展格式,流程图和for的流程图一样
初始化语句;
while(条件判断){
循环体;
步进语句;
}
标准格式:
5…5.4 do-while
/*
do-while循环的标准格式:
*/
do{
循环体
}while(条件判断);//分号不可省略
5.5.5 循环练习
求出1-100之间的偶数和
public class Demo01HundredSum{
public static void main(String[] args){
int sum = 0;
for(int i = 1; i <= 100; i++){
if(i % 2 == 0) sum = i + sum;
}
System.out.println("结果是:"+sum);
}
}
5.5.6 三种循环的区别:
- 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。
- for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。
5.5.7 break语句和continue语句
break关键字的用法有常见的两种:
- 可以用在switch语句当中,一旦执行,整个switch语句立刻结束
- 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。
关于循环的选择,有一个小建议:凡是次数确定的场景多用for循环;否则多用while循环。
另一种循环控制语句是continue关键字。
一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。