顺序控制
介绍
程序从上到下逐行地执行,中间没有任何判断和跳转。
分支控制
单分支
基本语法
if(条件表达式){
执行代码块; //可以有多条语句
}
说明: 当条件表达式为ture 时,就会执行 {} 的代码。如果为 false,就不执行特别说明,如果 {} 中只有一条语句,则可以不用 {},建议写上 {}。
双分支
基本语法
if(条件表达式){
执行代码块1;
}
else{
执行代码块2;
}
说明: 当条件表达式成立,即执行代码块1,否则执行代码块2。如果执行代码块,只有一条语句,则 {} 可以省略,否则,不能省略。
多分支
基本语法
if(条件表达式1){
执行代码块1;
}
else if(条件表达式2){
执行代码块2;
}
......
else{
执行代码块n;
}
说明: 当条件表达式 1 成立时,即执行代码块 1。如果表达式 1 不成立,去判断表达式 2 是否成立。如果表达式 2 成立,就执行代码块 2 。以此类推,如果所有的表达式都不成立,则执行 else 的代码块。只能有一个执行入口。
特别说明:
- 多分支可以没有 else, 如果所有的条件表达式都不成立,则一个执行入口都没有。
- 如果有 else ,当所有的条件表达式都不成立时,则默认执行 else 代码块。
嵌套分支
基本介绍
在一个分支结构中又完整的嵌套了另个完整的分支结构,里面的分支的结构称为内层分支,外面的分支结构称为外层分支。规范:不要超过3层(可读性不好)
基本语法
if(){
if(){
//if-else...
}
else{
//if-else...
}
}
switch 分支结构
基本语法
switch(表达式){
case 常量1: //当..
语句块1;
break;
case 常量2;
语句块2;
break;
case 常量n;
语句块n;
break;
default:
语句块;
break;
}
说明:
- switch 关键字,表示 swtich 分支。
- 表达式对应一个值。
- case 常量1 : 表达式的值等于常量1,就执行语句块1。
- break: 表示退出 swtich。
- 如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2。
- 如果一个都没有匹配上,执行 default。
细节讨论
- 表达式的数据类型,应和 case 后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int。
- switch (表达式) 中表达式的返回值必须是:(byte,short,int,char,enum,String)
- case 子句中的值必须是常量,而不能是变量。
- default 子句是可选的,当没有匹配的 case 时,执行default。
- break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果没有写 break,程序会顺序执行到 switch 结尾。
switch 和 if 的比较
- 如果判断的具体数值不多,而且符合 byte、short、int、char, enum,String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句。
- 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广。