【测开技能】Java语言系列(十一)switch多重选择

2022-09-29 20:11:09 浏览数 (1)

Java系列分享

【测开技能】Java语言系列(一)Java入门

【测开技能】Java语言系列(二)Java基础语法

【测开技能】Java语言系列(三)变量和数据类型

【测开技能】Java语言系列(四) 整数运算

【测开技能】Java语言系列(五) 浮点数运算

【测开技能】Java语言系列(六) 布尔运算

【测开技能】Java语言系列(七) 字符和字符串

【测开技能】Java语言系列(八)数组类型

【测开技能】Java语言系列(九)输入和输出

【测开技能】Java语言系列(十)if判断

正文


除了if语句外,还有一种条件判断,是根据某个表达式的结果,分别去执行不同的分支。

比如我们在玩游戏的时候,会有单人游戏,多人游戏,退出游戏。

这时,switch语句就派上用场了。

switch语句根据switch (表达式)计算的结果,跳转到匹配的case结果,然后继续执行后续语句,直到遇到break结束执行。

我们来举一个例子

代码语言:javascript复制

public class main {
    public static void main(String[] args) {
       String options="单人游戏";
       switch (options){
           case "单人游戏":
               System.out.println("开始单人游戏");
               break;
           case  "多人游戏":
               System.out.println("多人游戏");
               break;
           case "退出游戏":
               System.out.println("退出游戏");
               break;
       }
    }
}

执行下,看下结果

可以根据options来执行不通的代码,但是有人会说,假如options为注册,就没有可以输出了,那么如何实现呢。

代码语言:javascript复制
public class main {
    public static void main(String[] args) {
       String options="注册";
       switch (options){
           case "单人游戏":
               System.out.println("开始单人游戏");
               break;
           case  "多人游戏":
               System.out.println("多人游戏");
               break;
           case "退出游戏":
               System.out.println("退出游戏");
               break;
           default:
               System.out.println("没有执行选项");
       }
    }
}

用一个default就实现了,没有选项就有一个默认输出,其实这些就相当于if... else if ... else...,但是用switch更加的清晰。

但是在switch中,会出现case多个执行,比如我们去掉break

代码语言:javascript复制
public class main {
    public static void main(String[] args) {
       String options="单人游戏";
       switch (options){
           case "单人游戏":
               System.out.println("开始单人游戏");
//               break;
           case  "多人游戏":
               System.out.println("多人游戏");
//               break;
           case "退出游戏":
               System.out.println("退出游戏");
//               break;
           default:
               System.out.println("没有执行选项");
       }
    }
}

结果

也就是switch 会一直执行所有的代码,直到遇到break才会结束。因此,我们在实现的时候,一定要记得break。

代码语言:javascript复制
使用switch语句时,只要保证有break,case的顺序不影响程序逻辑:

switch (option) {
case 3:
    ...
    break;
case 2:
    ...
    break;
case 1:
    ...
    break;
}

但是仍然建议按照自然顺序排列,便于阅读。

编译检查

使用IDE时,可以自动检查是否漏写了break语句和default语句,方法是打开IDE的编译检查。

Eclipse中,选择Preferences - Java - Compiler - Errors/Warnings - Potential programming problems,将以下检查标记为Warning:

  • 'switch' is missing 'default' case
  • 'switch' case fall-through

在Idea中,选择Preferences - Editor - Inspections - Java - Control flow issues,将以下检查标记为Warning:

  • Fallthrough in 'switch' statement
  • 'switch' statement without 'default' branch

0 人点赞