首页 > 编程语言 > 详细

Java switch 多重选择语句(学习 Java 编程语言)

时间:2021-01-03 23:02:49      阅读:42      评论:0      收藏:0      [点我收藏+]
在处理多个选项时,使用 if/else 结构显得有些笨拙。Java 有一个 switch 语句。

switch 语句将从与选项值相匹配的 case 标签开始执行,直到遇到 break 语句,或者执行到 switch 语句的结束处为止。如果没有相匹配的 case 标签,而有 default 子句,就执行这个子句。

下面是一个 switch 的例子:

Scanner in = new Scanner(System.in);
System.out.println("请输入 1、2、3、4 !");
int choice = in.nextInt();
switch(choice) {
    case 1:
        System.out.println("输入的值为: " + choice);
        break;
    case 2:
        System.out.println("输入的值为: " + choice);
        break;
    case 3:
        System.out.println("输入的值为: " + choice);
        break;
    case 4:
        System.out.println("输入的值为: " + choice);
        break;
    default:
        System.out.println("bad input");
        break;
}

技术分享图片

有可能触发多个 case 分支。如果在 case 分支语句的末尾没有 break 语句,那么就会接着执行下一个 case 分支语句。这种情况相当危险,常常会引发错误。为此,我们在程序中从不使用 switch 语句。
如果你比我们更喜欢 switch 语句,编译代码时可以考虑加上 -Xlint:fallthrough 选项,如下所示:
javac -Xlint:fallthrough Test.java
这样以来,如果某个分支最后缺少一个 break 语句,编译器就会给出一个警告消息。
如果你确定正是想使用这种“直通式”(fallthrough)行为,可以为其外围方法加上一个标注 @SuppressWarnings("fallthrough")。这样就不会对这个方法生成警告了。(注解是为编译器或处理 Java 源文件或类文件的工具提供信息的一种机制。)

case 标签可以是:

  • 类型为 char、byte、short 或 int 的常量表达式。
  • 从 Java 7 开始,case 标签还可以是字符串字面量。
  • 枚举常量。

当在 switch 语句中使用枚举常量时,不必在每个标签中指明枚举名,可以由 switch 的表达式值推导得出。例如:
enum Size {SMALL, MEDIUM, LARGE, EXTRA_LARGE};

Size sz = Size.SMALL;
switch (sz)
{
    case SMALL: // 不需要使用 Size.SMALL
        ...
        break;
    ...
}

Java switch 多重选择语句(学习 Java 编程语言)

原文:https://blog.51cto.com/12185106/2581439

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!