30.基础语法-switch01

30 switch01

30.1 解释

当 if-else-if 的判断分支较多,而且判断条件都是 比较值是否相等 时,可以用 switch 代替

如下代码,是之前未进行 switch 代码优化前

        // 3.2 计算TDEE
        double activityFactor = 0;
        if (activityLevel == 0) {
            // 久坐
            activityFactor = 1.2;
        } else if (activityLevel == 1) {
            // 轻度
            activityFactor = 1.375;
        } else if (activityLevel == 2) {
            // 中度
            activityFactor = 1.55;
        } else {
            // 高度
            activityFactor = 1.725;
        }

30.2 示例代码

switch 代码

        // 3.2 计算TDEE
        double activityFactor = 0;
        switch (activityLevel) {
            case 0:
                activityFactor = 1.2;
                break;  // 跳出当前 switch
            case 1:
                activityFactor = 1.375;
                break;
            case 2:
                activityFactor = 1.55;
                break;
            case 3:
                activityFactor = 1.725;
                break;

switch 与 if-else 相比,if-else 是由上至下,每一个条件进行对比,如果匹配的条件是最后一个,前面也会将所有条件对比完,才能匹配到最后一个,而 switch 则是直接进行值匹配,将 switch 直接匹配到 case 条件相等的值,因此耗时更短。

switch 代码简化版

        // 3.2 计算TDEE        
        double activityFactor = 0;
        switch (activityFactor) {
            case 0 -> activityFactor = 1.2;
            case 1 -> activityFactor = 1.375;
            case 2 -> activityFactor = 1.55;
            case 3 -> activityFactor = 1.725;
        }

30.3 演示

鼠标放到 chap06 行,新建 New -> Java Class -> 输入 SwitchDemo(创建包和类)

30.3.1 需求

switch案例
需求:开发一个真心话大冒险游戏,游戏开始后随机生成一个数字。
根据数字选择不同的大冒险:
0:嘴里含一口水说话,让大家猜说的是什么
1:学鸵鸟走路绕房间一圈
2:每个人选一样食物或调料混在一起给你吃
3:假装自己是个推销员,向大家推销你用过的鼻涕纸
4:用动作模仿一个人,让大家猜是谁
其它:恭喜你,跳过了大冒险

30.3.2 代码1

package com.itheima.chap06;

import java.util.Random;
/**
switch案例
需求:开发一个真心话大冒险游戏,游戏开始后随机生成一个数字。
根据数字选择不同的大冒险:
0:嘴里含一口水说话,让大家猜说的是什么
1:学鸵鸟走路绕房间一圈
2:每个人选一样食物或调料混在一起给你吃
3:假装自己是个推销员,向大家推销你用过的鼻涕纸
4:用动作模仿一个人,让大家猜是谁
其它:恭喜你,跳过了大冒险
*/

public class SwitchDemo {
    public static void main(String[] args) {
        // 1.随机生成一个数字【0,6)之间
        Random random = new Random();
        int number = random.nextInt(6); // 生成 0-5 的随机整数

        // 2.判断数字值,选择大冒险
        switch (number) {
            case 0:
                System.out.println("嘴里含一口水说话,让大家猜说的是什么");  // 多行代码,直接写下面就可以
                System.out.println("嘴里含一口水说话,让大家猜说的是什么");
                break;
            case 1:
                System.out.println("学鸵鸟走路绕房间一圈");
                break;
            case 2:
                System.out.println("每个人选一样食物或调料混在一起给你吃");
                break;
            case 3:
                System.out.println("假装自己是个推销员,向大家推销你用过的鼻涕纸");
                break;
            case 4:
                System.out.println("用动作模仿一个人,让大家猜是谁");
                break;
            default:
                System.out.println("恭喜你,跳过了大冒险");
        }
    }
}

------------------------------------------------ 第一次执行后
D:\Software\jdk17\bin\java.exe "-javaagent:D:\Software\JetBrainsIntelliJ IDEA 2025.2.4\lib\idea_rt.jar=8420" -Dfile.encoding=UTF-8 -classpath D:\Software\JavaCode\p1-basic\out\production\p1-basic com.itheima.chap06.SwitchDemo
学鸵鸟走路绕房间一圈

Process finished with exit code 0

------------------------------------------------ 第二次执行后
D:\Software\jdk17\bin\java.exe "-javaagent:D:\Software\JetBrainsIntelliJ IDEA 2025.2.4\lib\idea_rt.jar=8426" -Dfile.encoding=UTF-8 -classpath D:\Software\JavaCode\p1-basic\out\production\p1-basic com.itheima.chap06.SwitchDemo
嘴里含一口水说话,让大家猜说的是什么
嘴里含一口水说话,让大家猜说的是什么

Process finished with exit code 0

30.3.3 代码2

package com.itheima.chap06;

import java.util.Random;
/**
switch案例
需求:开发一个真心话大冒险游戏,游戏开始后随机生成一个数字。
根据数字选择不同的大冒险:
0:嘴里含一口水说话,让大家猜说的是什么
1:学鸵鸟走路绕房间一圈
2:每个人选一样食物或调料混在一起给你吃
3:假装自己是个推销员,向大家推销你用过的鼻涕纸
4:用动作模仿一个人,让大家猜是谁
其它:恭喜你,跳过了大冒险
*/

public class SwitchDemo {
    public static void main(String[] args) {
        // 1.随机生成一个数字【0,6)之间
        Random random = new Random();
        int number = random.nextInt(6); // 生成 0-5 的随机整数

        // 2.判断数字值,选择大冒险
        switch (number) {
            case 0 -> {
                System.out.println("嘴里含一口水说话,让大家猜说的是什么");  // 通过 {} 可以写多行代码
                System.out.println("嘴里含一口水说话,让大家猜说的是什么");
                System.out.println("嘴里含一口水说话,让大家猜说的是什么");
            }
            case 1 -> System.out.println("学鸵鸟走路绕房间一圈");
            case 2 -> System.out.println("每个人选一样食物或调料混在一起给你吃");
            case 3 -> System.out.println("假装自己是个推销员,向大家推销你用过的鼻涕纸");
            case 4 -> System.out.println("用动作模仿一个人,让大家猜是谁");
            default -> System.out.println("恭喜你,跳过了大冒险");
        }
    }
}

------------------------------------------------ 第一次执行后
D:\Software\jdk17\bin\java.exe "-javaagent:D:\Software\JetBrainsIntelliJ IDEA 2025.2.4\lib\idea_rt.jar=8488" -Dfile.encoding=UTF-8 -classpath D:\Software\JavaCode\p1-basic\out\production\p1-basic com.itheima.chap06.SwitchDemo
每个人选一样食物或调料混在一起给你吃

Process finished with exit code 0

------------------------------------------------ 第二次执行后
D:\Software\jdk17\bin\java.exe "-javaagent:D:\Software\JetBrainsIntelliJ IDEA 2025.2.4\lib\idea_rt.jar=8536" -Dfile.encoding=UTF-8 -classpath D:\Software\JavaCode\p1-basic\out\production\p1-basic com.itheima.chap06.SwitchDemo
嘴里含一口水说话,让大家猜说的是什么
嘴里含一口水说话,让大家猜说的是什么
嘴里含一口水说话,让大家猜说的是什么

Process finished with exit code 0

———————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

 

posted on 2025-12-25 10:51  马俊南  阅读(6)  评论(0)    收藏  举报