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
———————————————————————————————————————————————————————————————————————————
无敌小马爱学习
浙公网安备 33010602011771号