流程控制用来控制程序中各语句的执行顺序,如下图所示
基本的if选择结构
单分支if选择结构:
语法结构:
if(条件){
//代码块
}
执行规律:
如果条件为true,执行{}中的代码块,执行完后,继续往下执行{}后面的代码
如果条件为false,执行{}后面的代码
注意:
条件不管多么简单还是多么复杂,都只能为布尔值
双分支if选择结构:if-else选择结构
语法结构:
if(条件){
//代码块1;
}else{
//代码块2;
}
执行规律:
如果条件为true,执行代码块1,执行完之后,执行if-else结构后面的代码
如果条件为false,执行else{}里面的代码块2,执行完之后,执行if-else结构后面的代码
注意:
条件为布尔值
如果代码块1只有一条语句,代码块1所在的{}可以省略,但不建议
多重if选择结构:if-else-if选择结构
语法结构:
if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else if(条件3){
//代码块3
}....
}else{
//代码块n
}
执行规律:
(1)先判断条件1,如果条件1为true,执行代码块1,执行完之后结束整个if-else-if结构,执行该结构后面的代码
(2)如果条件1为false,继续往下判断条件2,如果条件2为true, 执行代码块2,执行完之后结束整个if-else-if结构,执行该结构后面的代码
(3)如果条件2为false,继续往下判断条件3,如果条件3为true,执行代码块3,执行完之后结束整个if-else-if结构,执行该结构后面的代码
(4)......
(5)如果所有的条件都为false,执行else里面的代码块n
注意:
(1)条件为布尔值
(2)else if可以有1个、2个、多个
(3)else也可以省略,如果所有的条件不成立,也没有else,那么整个if-else-if结构不执行
(4)多重if选择结构中各个条件的顺序不可以任意排列,要求从上往下由严格到宽松。
嵌套if选择结构:在一个if选择结构中存在另外一个if选择结构
语法结构:
if(条件1){
//代码块1
if(条件2){
//代码块2
}else{
//代码块3
}
}else{
//代码块4
}
执行规律:
判断条件1,条件1为true,执行代码块1,进一步判断条件2,条件为true,执行代码块2,条件2为false,执行代码块3,执行完之后,结束整个所有的if结构
条件1为false,执行下面else里的代码块4
switch选择结构:
switch(表达式){
case 常量值1:
//代码语句;
break;
case 常量值2:
//代码语句;
break;
case 常量值3:
//代码语句;
break;
.........
default:
//代码语句;
break;
执行规律:
根据表达式的值,来与case后面的常量值进行匹配
匹配上哪个常量值,就执行该case里面的代码语句,代码语句执行完,执行break,退出整个Switch选择结构,执行Switch选择结构后面的代码
如果表达式的值与所有的case常量值不匹配,则执行default里面的代码语句,执行完执行break语句,退出整个Switch选择结构
注意事项:
(1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK7及以后版本可以使用)
(2)case常量值不能相同
(3)default语句可以在任意位置,一般来说写在最后,也可以省略不写
(4)break的作用是结束整个Switch选择结构,如果不写,会造成“case穿透”现象,此现象可以合理使用
}