代码按照先后的顺序,依次执行,是程序中最简单的流程控制。
2,选择结构
if格式:
if(关系表达式){
语句体
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容
if… else…
格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
if…elseif else格式
格式:
if(表达式1){
语句体1;
}else if(表达式2){
语句体2;
}else if(表达式…){
语句体…;
else{
语句体N+1
}
1,首先计算关系表达式1的值 2,如果值为true ,则执行语句体13,如果值为false,则进行表达式2的判断4,如果表达式2的值为true,则执行语句体25,如果表达式2的值为false, 则执行表达式3的值6,……7,如果没有任何关系表达式,则执行语句体N+1
格式:
switch(将要匹配的值){
case 1:
语句体1;
break;
case 2:
语句体2;
break;
…:
…;
…;
default:
语句体n+1;
break;
}
执行流程:
1,程序先拿着将要匹配的值,跟case 给出的值,逐个进行匹配2,如果匹配成功,则执行对应的语句体,然后由break语句结束掉整个switch语句3,如果所有的case都匹配失败,将会执行default语句当中的语句体,然后再执行break结束switch语句
注意事项:
1,case后面的值只能是常量,不能是变量。2,case后面的值是不能重复的。
提问
问题1:break语句可以省略吗?可以,会出现case穿透现象
问题2:default语句可以省略吗?可以,但是不建议,因为default可以处理case范围之外的值。
问题3:default语句最后的break可以省略吗?可以,没有任何问题
表达式的值可以是哪些类型?基本数据类型:只要能提升为int类型的都可以(byte,short,int,char)引用数据类型:String(jdk7及以后的), 枚举,