Java switch case隐藏用法

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
全球加速 GA,每月750个小时 15CU
简介: 在 Java 中,`switch` 语句是一种多分支选择结构,常用于根据变量值执行不同代码块。除基本用法外,它还有多种进阶技巧,如使用字符串(Java 7 开始支持)、多个 `case` 共享代码块、不使用 `break` 实现 “fall-through”、使用枚举类型、使用表达式(Java 12 及以上)、组合条件以及使用标签等。这些技巧使代码更加简洁、清晰且高效。

在Java中,switch语句是一个多分支选择结构,通常用于根据变量的值执行不同的代码块。除了基本的用法外,switch语句还有一些不太常见但有用的隐藏用法。以下是一些示例和说明:

1. 使用字符串作为条件

从Java 7开始,switch语句支持字符串类型。这使得可以更直观地处理多个字符串值。

String day = "MONDAY";
switch (day) {
   
    case "MONDAY":
        System.out.println("Start of the week");
        break;
    case "FRIDAY":
        System.out.println("End of the week");
        break;
    default:
        System.out.println("Midweek day");
}

2. 多个case共享同一代码块

可以将多个case标签放在一起,共享同一代码块,减少重复代码。

int number = 2;
switch (number) {
   
    case 1:
    case 2:
    case 3:
        System.out.println("Number is between 1 and 3");
        break;
    default:
        System.out.println("Number is out of range");
}

3. 不使用break语句

如果不使用break语句,程序会继续执行下一个case的代码,直到遇到breakswitch结束。这种用法称为“fall-through”。

int number = 2;
switch (number) {
   
    case 1:
        System.out.println("One");
    case 2:
        System.out.println("Two");
    case 3:
        System.out.println("Three");
        break;
    default:
        System.out.println("Not 1, 2, or 3");
}
// 输出:Two
// 输出:Three

4. 使用枚举类型

switch语句可以与枚举类型结合使用,使代码更加清晰和类型安全。

enum Day {
   
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

Day today = Day.MONDAY;
switch (today) {
   
    case MONDAY:
        System.out.println("Start of the week");
        break;
    case FRIDAY:
        System.out.println("End of the week");
        break;
    default:
        System.out.println("Midweek day");
}

5. 使用表达式作为case条件

在Java 12及更高版本中,可以使用switch表达式,允许在case中使用箭头语法,简化代码。

int number = 2;
String result = switch (number) {
   
    case 1 -> "One";
    case 2 -> "Two";
    case 3 -> "Three";
    default -> "Not 1, 2, or 3";
};
System.out.println(result);

6. 组合条件

case中可以使用逻辑运算符来组合条件,但需要注意的是,case标签本身不能直接使用逻辑运算符。

int number = 2;
switch (number) {
   
    case 1:
    case 2:
        System.out.println("Number is 1 or 2");
        break;
    case 3:
        System.out.println("Number is 3");
        break;
    default:
        System.out.println("Number is out of range");
}

7. 使用标签

switch语句中,可以使用标签来标识特定的case,这在嵌套的switch语句中尤其有用。

outerSwitch:
switch (outerValue) {
   
    case 1:
        switch (innerValue) {
   
            case 1:
                System.out.println("Outer 1, Inner 1");
                break outerSwitch; // 退出外层 switch
            case 2:
                System.out.println("Outer 1, Inner 2");
                break;
        }
        break;
}

总结

Java中的switch语句不仅仅是简单的条件选择工具,它还支持字符串、枚举、表达式等多种用法。通过合理利用这些隐藏用法,可以使代码更加简洁、清晰和高效。

相关文章
|
19天前
|
Java
Java 正则表达式高级用法
Java 中的正则表达式是强大的文本处理工具,用于搜索、匹配、替换和分割字符串。`java.util.regex` 包提供了 `Pattern` 和 `Matcher` 类来高效处理正则表达式。本文介绍了高级用法,包括使用 `Pattern` 和 `Matcher` 进行匹配、断言(如正向和负向前瞻/后顾)、捕获组与命名组、替换操作、分割字符串、修饰符(如忽略大小写和多行模式)及 Unicode 支持。通过这些功能,可以高效地处理复杂文本数据。
|
19天前
|
存储 Java 数据处理
Java 数组的高级用法
在 Java 中,数组不仅可以存储同类型的数据,还支持多种高级用法,如多维数组(常用于矩阵)、动态创建数组、克隆数组、使用 `java.util.Arrays` 进行排序和搜索、与集合相互转换、增强 for 循环遍历、匿名数组传递以及利用 `Arrays.equals()` 比较数组内容。这些技巧能提升代码的灵活性和可读性,适用于更复杂的数据处理场景。
|
13天前
|
Java
java基础(1)逻辑控制if、switch
本文继续介绍了Java中的基础逻辑控制语句,包括if-else语句和switch语句。文章通过示例代码展示了if-else语句如何根据条件判断执行不同的代码块,以及switch语句如何根据变量的值执行不同的case分支。还提供了一个使用Scanner类从键盘获取输入,并根据输入的数字输出对应的星期日的示例。最后提到了如何在IDEA中格式化代码。
12 2
|
2月前
|
Java C++ 开发者
if-else VS switch:谁才是Java条件判断的王者?
if-else VS switch:谁才是Java条件判断的王者?
34 3
|
2月前
|
Java 程序员 编译器
Java高手教你如何灵活运用if-else和switch,提升代码效率!
在Java编程中,if-else与switch语句犹如剑与刀,恰当地使用能让你的代码战无不胜。本文通过示例展示如何精简if-else结构,利用Map提高权限分配系统的可读性和维护性;如何高效运用switch语句处理订单状态,使代码更清晰;并探讨了两者在不同场景下的性能考量。掌握这些技巧,你将在Java编程的世界里游刃有余,成就非凡!
25 3
|
2月前
|
Java 数据处理
Java IO 接口(Input)究竟隐藏着怎样的神秘用法?快来一探究竟,解锁高效编程新境界!
【8月更文挑战第22天】Java的输入输出(IO)操作至关重要,它支持从多种来源读取数据,如文件、网络等。常用输入流包括`FileInputStream`,适用于按字节读取文件;结合`BufferedInputStream`可提升读取效率。此外,通过`Socket`和相关输入流,还能实现网络数据读取。合理选用这些流能有效支持程序的数据处理需求。
29 2
|
2月前
|
Java 开发者
超实用!一文搞懂Java中if-else和switch的正确打开方式!
超实用!一文搞懂Java中if-else和switch的正确打开方式!
34 2
|
2月前
|
Java 开发者
别再傻傻分不清!Java if-else与switch的性能对比全解析!
别再傻傻分不清!Java if-else与switch的性能对比全解析!
42 1
|
2月前
|
Java
Java条件语句:if-else与switch的适用场景大起底
Java条件语句:if-else与switch的适用场景大起底
70 2
|
2月前
|
存储 Java 编译器
掌握这些技巧,让Java中的条件语句if-else和switch为你的项目加分!
在软件工程中,Java的if-else和switch语句是控制流程的关键。通过案例分析,本文展示如何优化这些语句以提升代码质量和性能。首先,重构if-else结构,使用Map存储会员等级与折扣的映射,提高代码可读性和扩展性。其次,利用switch语句处理有限的选择,并通过策略模式进一步增强代码的灵活性。最后,根据选项数量和数据类型的不同,合理选择if-else或switch以达到最优性能。掌握这些技巧,将助力开发者写出更高效的Java代码。
41 0
下一篇
无影云桌面