前言:一件完整的事件从开始到结束都有自己的一套流程,越复杂的事件其流程也越复杂。在编程语言中,如何利用流程的逻辑控制事件的发展与走向,减少代码量?如何利用流程控制语句实现想要的功能?在这之前我们先要了解什么是流程控制语句,流程控制语句有哪些,各自是如何实现流程控制的?
分类:顺序结构、选择结构、循环结构
顺序结构
概述:最简单最基本的流程控制、按顺序执行(写在前面的先执行,写在后面的后执行)
执行流程:从上往下,依次执行。
选择结构
概述:(分支结构)
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,
逻辑运算的结果有两个或者多个,所以产生选择,按照不同的选择执行不同的代码。
分类:if语句、switch语句
IF语句
格式
- 格式1:if(比较表达式或者是boolean类型的值) {语句体;}
执行流程
表达式的值–>判断真假
true–>执行语句体
false–>不执行语句体
- 格式2:if(比较表达式) {语句体1;}
else {语句体2;}
执行流程
表达式的值–>判断真假
true–>执行语句体1
false–>执行语句体2
- 格式3:if(比较表达式1) {语句体1;
}else if(比较表达式2) {语句体2;
}else if(比较表达式3) {语句体3;
}…else {语句体n+1;}
执行流程
表达式1的值–>判断真假
true–>执行语句体1
false–>表达式2的值–>判断真假true–>执行语句体2
false–>•••–>表达式n的值–>判断真假–>true–>执行语句体n
false–>执行语句体n+1
注意
比较表达式无论简单还是复杂,结果必须是boolean类型
语句体是一条语句,大括号可以省略
语句体多条时,不能省略大括号。建议永远不要省略。
有左大括号就没有分号,有分号就没有左大括号
else后面是没有比较表达式的,只有if后面有。
当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。
什么时候if语句实现不能用三元改进呢?
当if语句控制的操作是一个输出语句的时候就不能。
为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
switch语句
格式
switch(表达式){case 值1:语句体1;break;
case 值2:语句体2;break;
case 值3:语句体3;break;
…
default:语句体n+1;break; }
格式解释:switch表示这是switch语句
case后是一个值(常量),要和表达式进行比较的,不可重复
default表示以上条件都没有匹配项(可以不写,位置不要求);
支持数据类型:byte,short,int,char,枚举类型(1.5),字符串(1.7)
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
省略break会出现case穿透现象
执行流程
表达式的值–>匹配case–>执行语句体–>break结束–>false–>执行default语句
使用场景
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
**switch语句使用场景:**针对几个常量值的判断
循环结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码,需要结束循环
分类:for循环、while循环
for语句
格式:for(初始化表达式语句;判断条件语句;控制条件语句) {循环体语句;}
执行流程
初始化表达式语句–>判断条件语句
true–>继续
false–>结束
注意:
初始化表达式语句只执行一次
判断条件语句是boolean类型
For(int a:int[] arr){}(遍历中无法修改)
a :遍历的容器中的当前元素—类型
arr :容器名字
while语句
格式:初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句; }
执行流程
初始化条件语句–>判断条件语句
true–>继续
false–>结束
do…while语句
格式:初始化条件语句;
do {循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程
初始化条件语句–>循环体语句–>控制条件语句–>判断条件语句
true–>继续
false–>结束
三种循环语句的区别:
do…while循环至少执行一次循环体。
for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。
不知道用for循环。 因为变量及早的从内存中消失,可以提高内存的使用效率。
建议优先考虑for循环,然后是while循环 ,最后是do…while循环
知道循环次数用for();不知道循环次数用while();
一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
两种最简单的死循环格式while(true){…}、for(;?{…}
控制跳转语句
实现控制语句的跳转和中断。
分类:break 中断、 continue 继续、return 返回
离开使用场景的存在是没有意义的
break
break—结束单层循环
使用场景:在选择结构switch语句中、在循环语句中
作用:退出单层循环、退出多层循环(几乎不使用)(格式:标签名:语句)
coontinue
continue—结束当前循环,执行下一次循环
使用场景:在循环语句中
作用:跳出一次循环,执行下一步操作
return
return—结束当前方法
作用:return 就是退出一个方法。
跳转到上层调用的方法。