JAVASE 【Java基础三之程序流程控制】
文章目录
1、流程控制语句分类
顺序结构
分支结构(if, switch)
循环结构(for, while, do…while)
2、顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
- 顺序结构执行流程图
3、分支结构之if语句
- if格式一
if (关系表达式) {
语句体;
}
-
执行流程
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容
-
代码示例
public class IfDemo { public static void main(String[] args) { System.out.println("开始"); //定义两个变量 int a = 10; int b = 20; //需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b if(a == b) { System.out.println("a等于b"); } //需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c int c = 10; if(a == c) { System.out.println("a等于c"); } System.out.println("结束"); } }
-
if格式二
if (关系表达式) {
语句体1;
} else {
语句体2;
}
-
执行流程
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
-
代码示例
public class IfDemo02 { public static void main(String[] args) { System.out.println("开始"); //定义两个变量 int a = 10; int b = 20; //需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,否则,在控制台输出:a的值不大于b if(a > b) { System.out.println("a的值大于b"); } else { System.out.println("a的值不大于b"); } System.out.println("结束"); } }
-
if格式三
if (关系表达式1) { 语句体1; } else if (关系表达式2) { 语句体2; } … else { 语句体n+1; }
-
执行流程
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④…
⑤如果没有任何关系表达式为true,就执行语句体n+1。
-
代码示例
键盘录入一个星期数(1,2,…7),输出对应的星期一,星期二,…星期日
import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { System.out.println("开始"); // 需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日 Scanner sc = new Scanner(System.in); System.out.println("请输入一个星期数(1-7):"); int week = sc.nextInt(); if(week == 1) { System.out.println("星期一"); } else if(week == 2) { System.out.println("星期二"); } else if(week == 3) { System.out.println("星期三"); } else if(week == 4) { System.out.println("星期四"); } else if(week == 5) { System.out.println("星期五"); } else if(week == 6) { System.out.println("星期六"); } else { System.out.println("星期日"); } System.out.println("结束"); } }
4、switch语句
switch (表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
- 执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
5、for循环
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。
- for循环结构
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
-
格式解释
-
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
-
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
-
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
-
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
-
执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
6、while循环
- while结构
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
- while循环执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
7、do…while循环
- do…while循环格式
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
- 执行流程
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续
8、三种循环的区别
-
for、while和do…while
-
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
-
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)至少执行一次
-
for循环和while的区别
-
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
-
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
-
for循环一般用在确定一个范围的场景, while循环一种不确定的范围的场景
9、跳转控制语句
- 跳转控制语句(break)
结束循环
for(int x = 0; x < 10; x++){
if(x == 3){
break;
}
System.out.println(x);
}
//break之后这个句话是可以打印出来的
System.out.println("over");
- 跳转控制语句(continue)
跳过本次循环,继续下次循环
for(int x = 0; x < 10; x++){
if(x == 3){
//跳出当前(本次)循环,继续下次循环
continue;
}
System.out.println(x);
}
//break之后这个句话是可以打印出来的
System.out.println("over");
- 跳转控制语句(return)
for(int x = 0; x < 10; x++){
if(x == 3){
//return 其实它的作用不是结束循环的,而是结束方法的。
return;
}
System.out.println(x);
}
//return之后这个句话就不会直接输出的
System.out.println("over");