文章目录
# 流程控制语句分类
- 顺序结构
- 分支结构(if,switch)
- 循环结构(for,while,do…while)
顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
顺序结构执行流程图
分支结构
if 格式一
if (关系表达式) {
语句体;
}
- 执行流程
① 首先计算关系表达式的值
② 如果关系表达式的值为true就执行语句体
③ 如果关系表达式的值为false就不执行语句体
④ 继续执行后面的语句内容
if 格式二
if (关系表达式) {
语句体1;
} else {
语句体2;
}
- 执行流程
① 首先计算关系表达式的值
② 如果关系表达式的值为true就执行语句体1
③ 如果关系表达式的值为false就执行语句体2
④ 继续执行后面的语句内容
if 格式三
if (关系表达式1) {
语句体1;
} else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
- 执行流程
① 首先计算关系表达式1的值
② 如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③ 如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④ …
⑤ 如果没有任何关系表达式为true,就执行语句体n+1。
switch 语句
switch (表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
-
执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
-
注意事项
如果switch中得case,没有对应break的话,则会出现case穿透的现象。跟顺序无序,跟case的值有关
循环结构
for 循环
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
格式解释
- 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
- 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
- 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
- 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
\quad 如果是false,循环结束
\quad 如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
while 循环
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
执行流程
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
\quad 如果是false,循环结束
\quad 如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
do…while 循环
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
\quad 如果是false,循环结束
\quad 如果是true,继续执行
⑤ 回到②继续
三种循环的区别
for、while和do…while
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)至少执行一次
for循环和while的区别
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
- for循环一般用在确定一个范围的场景, while循环一种不确定的范围的场景
跳转控制语句
跳转控制语句(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");
注意事项
break和continue只能在循环中进行使用,单独使用无任何意义!!
循环嵌套
外层循环执行一次,内层循环执行一圈
在循环中定义循环
public static void main(String[] args) {
for(int x = 1; x<=4; x++){
for(int y=1; y<=5; y++){
System.out.print("*");
}
//通过输出语句来换行
System.out.println();
}
}