1.if分支结构
多分支if选择结构
语法结构:
if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else if(条件3){
//代码块3
}....
}else if(条件n){
//代码块n
}else{
//代码块m
}
执行规律:
1)判断条件1
2)如果条件1为true。执行代码块1,执行完之后结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
3)如果条件1为false,继续往下判断条件2
4)如果条件2为true,执行代码块2,执行完之后结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
5)如果条件2为false,继续往下判断条件3
6)如果条件3为true,执行代码块3,,执行完之后结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
7)如果条件3为false,继续往下判断条件
.......
n)如果所有的条件都不满足,执行else{}中的代码
注意:
1)所有的条件都只能是布尔值,不管条件多么简单多么复杂,要么为true要么为false
2)else可以省略不写,如果所有的条件都不满足,也没有else,那么if-else-if结构不执行
3)多重if选择结构的条件是有顺序的,严格的条件放在前面
例:根据Java成绩划分不同的等级
double javaScore = 99;
if(javaScore>=90){
System.out.println("A");
}else if(javaScore>=80){
System.out.println("B");
}else if(javaScore>=70){
System.out.println("C");
}else if(javaScore>=60){
System.out.println("D");
}else{
System.out.println("E");
}
System.out.println("继续努力");
程序通过判断99分属于第一个if中的条件,所以会输出A。
2.switch选择结构
switch选择结构:
语法结构:
switch(表达式){
case 值1:
//代码块1;
break;
case 值2:
//代码块2;
break;
........
case 值n:
//代码块n;
break;
default:
//代码块m;
break;
}
执行规律:
根据表达式的结果,取匹配case后面的值,表达式的结果与哪个值相同,就执行里面的代码块。执行完代码块后执行break,结束整个Switch选择结构
如果表达式的值与所有的case后面的值都不相同,就执行default里面的代码块,然后执行break(这个break可以省略)结束整个Switch选择机构
注意:
1)表达式的值只能是一个等值(具体的值,不是一个范围)
2)表达式的值可以是byte short int char 枚举类型 String类型(JDK1.5还是1.7版本之后开始支持?)
3)case值不能相同
4)case里面break的作用是用来结束Switch选择结构,如果在case中没有写break,那么会造成case穿透现象(一直向下执行,一直到遇到break或者执行到最后的default)。case穿透现象可以合理使用
5)default语句块是当表达式的值与所有case值不相同的时候执行,default也可以省略不写。default可以写在任意位置,一般写在Switch结构最后。
例:
int mingCi = 2;
switch(mingCi){
case 1:
System.out.println("参加麻省理工大学组织的1个月夏令营");
break;
case 2:
System.out.println("奖励惠普笔记本电脑一部");
break;
case 3:
System.out.println("奖励移动硬盘一个");
break;
default:
System.out.println("没有奖励");
break;
}
3.switch和if的区别
- if可以用于判断数值,也可以判断区间,只要运算结果是boolean类型,都可以进行判断。switch用于对固定的几个值,进行判断。
- if的判断条件数据类型是布尔类型,switch的判断条件数据类型一般是int类型。
- switch语句可以对区间进行设置,也可以对某一条件进行直接设置,比if语句会更加简便一些。
- switch语句中case条件取值是不能重复的。