1. if分支
- 根据判定的结果(真或假)决定执行某个分支的代码
- 案例代码
public class IfDemo1 {
public static void main(String[] args) {
int heartBeat = 30;
if (heartBeat < 60 || heartBeat > 100) {
System.out.println("您的心跳数据是:" + heartBeat + ",您可能需要进一步检查!");
}
System.out.println("检查结束");
double money = 9999;
if (money >= 1314) {
System.out.println("您当前发送红包成功~~~");
} else {
System.out.println("余额不足~~~");
}
int score = 99;
if (score >= 0 && score < 60) {
System.out.println("您本月的绩效是:C");
} else if (score >= 60 && score < 80) {
System.out.println("您本月的绩效是:B");
} else if (score >= 80 && score < 90) {
System.out.println("您本月的绩效是:A");
} else if (score >= 90 && score <= 100) {
System.out.println("您本月的绩效是:A+");
} else {
System.out.println("您输入的分数有误!");
}
}
}
2. switch分支
- 匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好
- 案例代码
public class SwitchDemo2 {
public static void main(String[] args) {
String weekday = "周三";
switch (weekday) {
case "周一":
System.out.println("埋头苦干,解决bug");
break;
case "周二":
System.out.println("请求大牛程序员帮忙");
break;
case "周三":
System.out.println("今晚啤酒、龙虾、小烧烤");
break;
case "周四":
System.out.println("主动帮助女程序员解决bug");
break;
case "周五":
System.out.println("今晚吃鸡");
break;
case "周六":
System.out.println("与王婆介绍的小芳相亲");
break;
case "周日":
System.out.println("郁郁寡欢、准备上班");
break;
default:
System.out.println("数据有误!");
}
}
}
3. if、switch分支各自适合做什么业务场景?
- if其实在功能上远远大于switch
- if适合做区间匹配
- switch适合做:值匹配的分支选择、代码优雅
4. switch分支注意事项
- 表达式类型只能是byte、short、int、char、JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long
- case给出的值不允许重复,且只能是字面量,不能是变量
- 不要忘记写break,否则会出现穿透现象
5.switch的穿透性
- 如果代码执行到没有break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性
- 当case中没有写break时才会出现switch穿透现象
- 当存在多个case分支的功能代码是一样时,可以用穿透性把流程集中到同一处处理,这样可以简化代码