目录
三种基本流程结构:
- 顺序结构:
程序从上到下逐行地执行,中间没有任何判断和跳转。 - 分支结构:
根据条件,选择性地执行某段代码。
有if…else和switch-case两种分支语句。 - 循环结构:
根据循环条件,重复性的执行某段代码。
有while、do…while、for三种循环语句。
注意:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
分支结构:
if语句三种格式:
//第一种
if(条件表达式){
执行代码块;
}
//第二种
if(条件表达式){
执行代码块1;
}
else{
执行代码块2;
}
//第三种
if(条件表达式1){
执行代码块1;
}
else if (条件表达式2){
执行代码块2;
}
……
else{
执行代码块n;
}
if-else使用说明:
- 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
- 语句块只有一条执行语句时,一对{}可以省略,但建议保留
- if-else语句结构,根据需要可以嵌套使用
- 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略
- 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓
- 当多个条件是“包含”关系时,“小上大下 / 子上父下”
switch-case语句:
switch(表达式){
case 常量1:
语句1;
// break;
case 常量2:
语句2;
// break;
… …
case 常量N:
语句N;
// break;
default:
语句;
// break;
}
- switch(表达式)中表达式的值必须是下述几种类型之一:byte,short, char,int,枚举 (jdk 5.0),String (jdk 7.0);
- case子句中的值必须是常量,不能是变量名或不确定的表达式值;
- 同一个switch语句,所有case子句中的常量值互不相同;
- break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
- default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行defaul
if-else和Switch-case使用场景:
- 如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
- 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。 也就是说,使用switch-case的,都可以改写为if-else。反之不成立。