通过一些语句,来控制程序的执行流程通过一些语句,来控制程序的执行流程
顺序结构
java程序默认的执行流程,没有特定的语法结构,按照代码的先后顺序,依次执行。程序中大多数的代码都是这样执行的。
选择结构(if)
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。*/
注意事项
- if语句中,如果大括号控制的是一条语句,大括号可以省略不写。(建议不要省略)
- if语句的()和{}之间不要写分号。
分支结构
switch语句:
//格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
/*执行流程:
* ①首先判断表达式的结果
* ②如果结果为值1就执行语句体1;
* ③如果结果为值2就执行语句体2;
* ④...
* ⑤如果结果值没有对应的,就执行语句体n+1。*/
注意事项:
- case后面的值不允许重复
- case后面的值只能是字面量(常量),不能是变量。
- switch()中可以接收的类型:基本数据类型(byte,short,char,int),引用数据类型(jdk5版本开始可以是枚举,jdk7版本开始可以是String字符串)
- case穿透现象
- jdk14版本开始,case后面允许编写多个数据,多个数据中间使用逗号分隔。
循环结构
for循环:
fori可以快捷生成for循环主体
//格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
/*执行流程:
* ①执行初始化语句,在整个循环过程中,只执行一次
* ②执行判断条件,结果是true则执行执行③,为false则循环结束
* ③执行循环体语句
* ④执行条件控制语句
* ⑤回到②继续...。*/
while循环
//格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
/*执行流程:
* ①执行初始化语句
* ②执行判断条件,结果是true则执行执行③,为false则循环结束
* ③执行循环体语句
* ④执行条件控制语句
* ⑤回到②继续...。*/
do-while循环
特点:无论判断条件是否满足都至少执行一次循环体
//格式:
初始化语句;
do(){
循环体语句;
条件控制语句;
}while(条件判断语句);
/*执行流程:
* ①执行初始化语句
* ②执行循环体语句
* ③执行条件控制语句
* ④执行判断条件,结果是true则执行执行②,为false则循环结束。*/
注意事项:
- 循环{ }中定义的变量,在每一轮循环结束后,都会从内存中释放
- 循环( )中定义的变量,在整个循环结束后,都会从内存中释放
- 循环语句( )和{ }之间不要写分号
跳转控制语句
continue:跳过
注意事项:continue只能在循环中使用
break:结束循环,结束switch语句
注意事项:break只能在循环中使用,或者是switch语句中使用
break、continue的共同注意事项:
下面不允许写代码,因为执行不到,属于无效的代码。
死循环
无限循环(死循环)
- for(;😉{}
- while(true){}
- do{} while{true};