1流程控制语句:
1.
顺序结构
2.选择结构
3.循环结构
2.跳转控制语句
switch
break
continue
3.顺序结构概述
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行
4.选择结构
也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句
if语句
switch语句
5.if语句有三种格式if语句第一种格式:
if(关系表达式) { 语句体
}
执行流程:首先判断关系表达式看其结果是true还是false,
如果是true就执行语句体,
如果是false就不执行语句体
.
注意事项:
1.关系表达式无论简单还是复杂,结果必须是boolean类型
2.if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
3.一般来说:有左大括号就没有分号,有分号就没有左大括号
if语句第二种格式:if(关系表达式) { 语句体1;
}else { 语句体2;
}
执行流程:
首先判断关系表达式看其结果是true还是false
,如果是true就执行语句体1;
如果是false,就执行语句体2.
if语句第二种格式和三元运算符
三元运算符的操作都可以使用if语句改进,反之不成立.
什么时候不成立呢?当if语句控制的语句体是一条输出语句的时候,就不成立。
因为三元运算符是一个运算符,必须要求有一个结果返回。
而输出语句却不能作为一个返回结果。
if语句第三种格式:
if(关系表达式1) { 语句体1;
}else if (关系表达式2) { 语句体2;
}
…
else { 语句体n+1;
}
执行流程:
首先判断关系表达式1看其结果是true还是false
.如果是true就执行语句体1,
如果是false就继续判断关系表达式2,看其结果是true还是false.
如果是true就执行语句体2,
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。
6.switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}格式解释:
1switch表示这是switch语句
2表达式的取值:byte,short,int,char3JDK5以后可以是枚举
4JDK7以后可以是String
5case后面跟的是要和表达式进行比较的值6语句体部分可以是一条或多条语句
7break表示中断,结束的意思,可以结束switch语句
8default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意事项:
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的default可以省略吗?
可以省略。一般不建议。除非判断的值是固定的。(单选题)
break可以省略吗?
可以省略,一般不建议。否则结果可能不是你想要的
default的位置一定要在最后吗?
可以出现在switch语句任意位置。
switch语句的结束条件
1.遇到break2.
执行到程序的末尾
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断
7.循环结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
循环语句的组成
初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:
这是一个boolean 表达式,这个表达式循环体。能决定是否执行
循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环体语句结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}执行流程:
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
注意事项:
判断条件语句的结果是一个boolean类型
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
while循环语句格式:基本格式
while(判断条件语句) {
循环体语句;
}扩展格式
:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
do…while循环语句格式:
基本格式
do {
循环体语句;
}while(判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);for循环语句和while循环语句可以等价转换,但还是有些小区别的使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。
原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的
:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
注意事项:
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。如下代码是死循环
while(true){}
for(;;){}
8.跳转控制语句
引入:
在某个循环到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
break 中断
continue 继续
return 返回
break的使用场景:
在选择结构switch语句中
在循环语句中
break的作用:
终止该层循环;
continue的使用场景:
在循环语句中
continue的作用:
跳过该层循环
单层循环
对比break,然后总结两个的区别:break 退出当前循环
continue 退出本次循环,继续下一次循
return,更常用的功能是结束一个方法,也就是退关键字不是为了跳转出循环体出一个方法。跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解。