目录
3. 流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执
行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。
3.1 流程控制语句分类
顺序结构
分支结构 (if, switch)
循环结构 (for, while, do…while)
3.2 顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多
数的代码都是这样执行的。
顺序结构执行流程图:
3.3 分支结构之if 语句
3.3.1 if语句格式1
格式
if(关系表达式) {
语句体;
}
执行流程:
(1)首先计算关系表达式的值
(2)如果关系表达式的值为 true 就执行语句体
(3) 如果关系表达式为false就不执行语句体
(4)继续执行后面的语句内容
示例:
public class IfDemo {
public static void main (String[] args) {
System.out.println ("开始");
// 如果年龄大于18岁,就可以上网吧
int age = 17;
if(age >= 18){
//int a = 10;
System.out.println("结束");
}
}
3.3.2 if 语句格式2
格式:
if (关系表达式){
语句体;
}else {
语句体2;
}
执行流程:
(1)首先计算关系表达式的值
(2)如果关系表达式的值为 true 就执行语句体1
(3) 如果关系表达式的值为 false 就执行语句体2
(4)继续执行后面的语句内容
示例:
任意给出一个整数,请用程序实现判断数是奇数还是偶数,并控制套输出该整数是奇数还是偶数。
public class Demo2if{ //创建类
public static void main(String[] args){//主方法
//程序判断一个数,是奇数还是偶数
int num = 9; //定义整型
if(num% 2==0){//定义整型
System.out.println("偶数");//输出信息
}else{
System.out.println("奇数");//输出信息
}
}
}
3.3.3 if 语句格式3
格式:
if(关系表达式1){
语句体;
}else if(关系表达式2){
语句体2;
}
...
else{
语句体n+1;
}
执行流程:
(1)首先计算关系表达式1的值
(2)如果值为 true 就执行语句体1;如果值为 false 就计算关系表达式2的值
(3)如果值为 true 就执行语句体2; 如果值为 false 就计算关系表达式3的值
(4)...
(5)如果没有任何关系表达式为 true , 就执行语句体n+1。
示例:
定义一个在0—100之间的变量a, 90—100优秀,80—89良好,70—79中等,60—69及格,0—59请努力加油!
public class Demo3if{ //创建类名
public static void main(String[] args)//主方法
int score = 65; //定义
int (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 if(score >=0 && score <=59){//输入信息要求
System.out.println("请努力加油");//输出信息
System.out.println("成绩有误!");//输出信息
}
}
}
3.4 switch语句
3.4.1 分支语句switch语句
格式:
switch(表达式){
case 1;
语句体 1;
break;
case 2;
语句体;
break;
...
default;
语句体n+1;
break;
}
执行流程:
首先计算表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default 语句体部分,然后程序结束。
3.4.2 switch 语句case穿透
概述:如果switch语句中,case省略了break语句,就会开始case穿透
需求:键盘入录星期数,输出工作日,休息日(1-5)工作日,(6-7)休息日
示例代码:
/*
case穿透是如何产生的?
如果switch语句中,cases省略了break语句,就会开始case穿透.
现象:
当开始case穿透,后续的就不会具有匹配效果,内部的语句都会执行.
直到看见break,或者将整体switch语句执行完毕,才会结束.
*/
public static void main(String[] args);//主方法
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数");//输出信息
int week = sc.nextint();
switch(week){//循环
case1;
case2;
case3;
case4;
case5;
System.out.println("工作日");//输出信息
break;
break6;
break7;
System.out.println("休息日");//输出信息
break;
default;
System.out.println("您的输入有误");//输出信息
break;//停止循环
}
}
}
3.5 循环语句
3.5.1 循环语句-for循环
循环
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断修改为 false , 从而循环结束,否则循环将一直执行下去,形成死循环。
for循环格式
for(初始化语句;条件判断语句;条件控制语句)
循环体语句;
}
格式解释:
初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
执行流程:
(1)执行初始化语句
(2)执行条件判断语句,看其结果是true还是false
如果是false ,循环结束;
如果是true,继续执行
(3)执行循环语句
(4)执行条件控制语句
(5)回到(2)继续
3.5.2 循环语句-while循环
while循环完整格式:
初始化语句:
while(条件判断语句){
循环体语句;
条件控制语句;
}
while循环执行流程:
(1)执行初始化语句
(2)执行条件判断语句,看其结果是true还是false,如果是false,循环结束;若果是true,继续执行
(3)执行循环体语句
(4)执行循环体语句
(5)回到(2)继续
示例代码:
public class WhileDemo{
public static void main(Sring[] args){
//需求: 在控制台输出5次"HelloWorld"
//for 循环实现
for(int i = 1; i <+ 5; i++){
System.out.println("HelloWorld");//输出信息
}
System.out.println("--------");/输出信息
//While 循环实现
System.out.println("HelloWorld");/输出信息
j++
}
}
}
3.5.3循环语句-dowhile循环
完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
(1)执行初始化语句
(2)执行条件判断语句,看其结果是true还是false,如果是false,循环结束;若果是true,继续执行
(3)执行循环体语句
(4)执行循环体语句
(5)回到(2)继续
示例代码:
public class DoWhileDeme{//创建类名
public static void main(String[] args);//主方法
//需求: 在控制台输出5次"HelloWorld"
//for循环实现
for(int i = 1; i<= 5; i++){//循环实现
System.out.println("HelloWorld");/输出信息
}
System.out.println("--------");/输出信息
j++;
}While(j <= 5);//循环实现
}
}
3.5.4 三种循环的区别
三种循环的区别
for循环和while循环线判断条件是否成立,然后决定是否执行循环体语句(先判断后执行)
do-while 循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属于语法结构中,在while循环结束后,该变量还可以继续使用
3.5.5跳转控制语句
跳转看控制语句(break)
跳出循环,结束循环
跳转控制语句(continue)
跳过本次循环,继续下次循环
注意:continue只能在循环中进行使用!