Loading

switch语句

分支语句switch语句

格式:

switch (表达式) {
    case 1:
        语句体1;
        break;
    case 2:
        语句体2;
        break;
    ...
    default:
        语句体n+1;
        break;
}

执行流程:

  • 首先计算出表达式的值

  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。

  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

switch案例

/*
需求:键盘录入星期数,显示今天的减肥活动
周一:跑步  
周二:游泳  
周三:慢走  
周四:动感单车
周五:拳击  
周六:爬山  
周日:好好吃一顿 
*/
public static void main(String[] args){
        // 1. 键盘录入星期数据,使用变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入");
        int week = sc.nextInt();
        // 2. 多情况判断,采用switch语句实现
        switch(week){
            // 3. 在不同的case中,输出对应的减肥计划
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("动感单车");
                break;
            case 5:
                System.out.println("拳击");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一顿");
                break;
            default:
                System.out.println("您的输入有误");
                break;
        }
    }
}
View Code

switch语句case穿透

  • 概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透

  • 需求 : 键盘录入星期数,输出工作日、休息日 (1-5)工作日,(6-7)休息日

  • 示例代码:

/*
case穿透是如何产生的?
    如果switch语句中,case省略了break语句, 就会开始case穿透.
        
现象:
    当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行,直到看见break,或者将整体switch语句执行完毕,才会结束。
*/
public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入星期数:");
        int week = sc.nextInt();
        
        switch(week){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("工作日");
                break;
            case 6:
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("您的输入有误");
                break;
        }
    }    
}
View Code

 

posted @ 2021-09-30 22:19  1640808365  阅读(844)  评论(0编辑  收藏  举报