【Java】- 流程控制语句 - 分支结构

本文详细介绍了Java编程中的if分支和switch分支,包括各自的适用场景和使用注意事项。if分支适用于区间匹配,例如心跳检测和红包发送条件判断;而switch分支适合于值匹配,如星期判断和绩效评估。在switch分支中,需要注意表达式的类型限制、case值的唯一性和break的使用,未写break可能导致穿透现象。此外,通过合理利用switch的穿透性,可以简化代码结构。
摘要由CSDN通过智能技术生成

1. if分支

  • 根据判定的结果(真或假)决定执行某个分支的代码
  • 案例代码
public class IfDemo1 {
    public static void main(String[] args) {
        // 需求:心跳(60 - 100)之间是正常的,否则系统提示进一步检查
        // 格式1:if (条件表达式) { 代码... }
        int heartBeat = 30;
        if (heartBeat < 60 || heartBeat > 100) {
            System.out.println("您的心跳数据是:" + heartBeat + ",您可能需要进一步检查!");
        }
        System.out.println("检查结束");

        // 格式2:if 条件表达式) { 代码... } else { 代码... }
        // 需求:发红包
        double money = 9999;
        if (money >= 1314) {
            System.out.println("您当前发送红包成功~~~");
        } else {
            System.out.println("余额不足~~~");
        }

        // 格式3:if (条件表达式) { 代码... } else if (条件表达式) { 代码... } ... else { 代码... }
        // 绩效系统:C:0-60 B:60-80 A:80-90 A+:90-100
        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) {
        // 目标:学会使用switch分支结构,理解流程
        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分支的功能代码是一样时,可以用穿透性把流程集中到同一处处理,这样可以简化代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值