流程控制语句
1、顺序结构
绝大部分代码都是按照从上往下、由左往右依次编译和执行
2、选择结构
if语句(提供三种格式的语句 针对范围)
if语句格式1(提供一个选项,可能有结果,可能没结果)
if(判断条件){
语句体;
}
执行流程
首先进行判断,如果判断结果是true,执行语句体,语句体 执行完毕,if语句结束了;
如果判断结果是false,直接跳过if语句不执行。
如果语句体只有一句话,省略大括号不写
if语句格式2(提供一个选项,返回一个结果)
if(判断条件){
语句体1;
}else{
语句体2;
}
执行流程
先去执行判断条件,如果判断结果为true,执行语句体1;
执行完语句体1,if语句结束。
如果判断结果为false,执行语句体2,执行完语句体2,if语句结束
当if语句格式2有返回值时,和三目等效转换
if语句格式3(提供多个选项,只有一个返回结果)
if(判断条件1){
语句体1;
}else if(判断条件2){
语句体2;
}
....
else{
语句体n+1;
}
执行流程
执行判断条件1,如果是true,执行语句体1,执行完毕,if语句结束;
如果是false,执行判断条件2,如果是true,执行语句体2,执行完毕,if语句结束;
如果是false,按照上述操作继续往下执行。
直到所有的判断条件都是false,执行else里的语句体n+1,执行完毕,if语句结束了
测试数据:
1、正确数据
2、边界数据
3、错误数据
switch语句(列举值)
格式
switch(表达式){
case 值1;
语句体1;
break;
case 值2;
语句体2;
break;
case 值3;
语句体3;
break;
......
default:
语句体n+1;
break;
}
执行流程
先去计算出表达式的值,和每个case的值进行比较,如果有相等的执行对应的语句体、执行break语句结束;如果没有相等的执行default里面的语句体、执行break语句结束
注意:
1、case值是常量且不能重复
2、表达式值类型支持---byte short char int
从jdk1.5开始支持枚举类型,从jdk1.7开始支持String类型
3、支持省略break,产生case穿透效果
4、支持省略default(选择题)
5、结束条件(1、遇见break 2、执行到代码的最后)
3、循环结构
for循环(循环范围确定)
格式
for(初始值;判断条件;控制条件){
循环体;
}
执行流程
先去计算出初始值,拿着初始值和判断条件进行比较,
如果结果为true,执行循环体,执行控制条件,改变初始值,
拿着改变的初始值和判断条件进行比较,如果为true,重复上述操作,
直到判断条件的结果值为false,则循环结束
恒久不变的规律---任意位整数%10结果是个位数
while循环(循环范围不确定时)
格式
初始值
while(判断条件){
循环体;
控制条件;
}
执行流程
先去计算出初始值,拿着初始值和判断条件进行比较,
如果结果为true,执行循环体,执行控制条件,改变初始值,
拿着改变的初始值和判断条件进行比较,如果为true,重复上述操作,直到判断条件的结果值为false,则循环结束
dowhile循环(最少执行一次)
格式
初始值
do{
循环体;
控制条件;
}while(判断条件);
执行流程
先去计算出初始值,执行循环体,执行控制条件,拿着改变的初始值和判断条件进行比较
如果为true,执行循环体,执行控制条件,拿着改变的初始值和判断条件进行比较
如果为true,重复执行上述操作,直到判断结果为false,循环结束
三种循环的区别和联系
1、循环范围确定推荐for循环,循环范围不确定推荐while循环,最少执行一次推荐dowhile循环
2、三种循环可以等价转换
3、三种循环---死循环
4、for循环的初始值后面不能使用,其他两个循环可以使用