分支控制

一、单分支
基本语法
if(条件表达式){
执行代码块(可以有多条语句);
}
说明
- 当条件表达式为true时,就会执行{}的代码。如果为false,就不执行。
流程图

二、双分支
基本语法
if(条件表达式){
执行代码块1;
}else{
执行代码块2;
}
说明
- 当条件表达式成立,即执行代码块1;否则执行代码块2。
- 双分支只能有一个执行入口!!!
流程图

三、多分支
基本语法
if(条件表达式1){
执行代码块1;
}else if(条件表达式2){
执行代码块2;
}
......
else{
执行代码块n;
}
流程图

说明
- 当条件表达式1成立时,即执行代码块1,后面的不再判断。
- 若表达式1不成立,才去判断表达式2是否成立。
- 若表达式2成立,就执行代码块2。
- 以此类推,如果所有表达式都不成立,则执行else的代码块。
- 只能有一个执行入口。
- 特别说明:(1)多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有;(2)如果有else,所有的条件表达式都不成立,则默认执行else代码块。
四、嵌套分支
基本介绍
- 在一个分支结构中又完整的嵌套了另一个完整的分支结构。里面的分支结构称为内层分支,外面的分支结构称为外层分支。建议:不要超过3层
基本语法
if(){
if(){
//if-else
}else{
//if-else
}
}
五、switch
基本语法
switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
...
default:
default语句块;
break;
}
说明
- switch关键字,表示switch分支
- 表达式对应一个值(只要是表达式就一定会有一个值返回)
- case 常量1: 当表达式的值等于常量1,就执行语句块1
- break:表示退出switch
- 如果和case 常量1匹配,就执行语句块1;如果没有匹配就继续匹配case 常量2....如果一个都没有匹配上,执行default
- 常量值就是一个具体的值(如:1,2,"hello")
- default后面有break会退出switch,没有也会退出switch
流程图

switch注意事项和细节讨论
- 表达式数据类型应与case后的常量类型一致,或是可以自动转成可以相互比较的类型。(比如输入的是字符,常量是int,char-->int自动转换)
- 表达式返回值的类型必须是:byte,short,int,char,enum(枚举),String
- case子句中的值必须是常量或者是常量表达式,不能是变量
- default子句是可选的,当没有匹配的case时,执行default;如果没有default子句,也没有匹配任何常量,则没有输出
- break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾
六、switch和if的比较
- 如果判断的具体数值不多,而且符合byte,short,int,char,enum,String这六种类型,建议使用switch语句。
- 其它情况:对区间的判断,对结果为Boolean类型判断,使用if,if的使用范围更广
本文章使用limfx的vscode插件快速发布