JDK14中的switch

前言

switchJDK12之后,语法得到改善,不过JDK12是预览属性,后面在JDK14转正

switch语法

JDK12之前,switch写法是这样

csharp 复制代码
public class SwitchDemo {

    public static void main(String[] args) {
        int a = 1;
        switch (a) {
            case 1: {
                System.out.println(1);
                break;
            }
            case 2: {
                System.out.println(2);
                break;
            }
            default : {
                System.out.println("aaa");
                break;
            }
        }
    }
}

但是JDK12之后对switch进行改进和预览,可以这么写

arduino 复制代码
public class SwitchDemo {

    public static void main(String[] args) {
        int a = 1;
        int data = switch (a) {
            case 1 -> 1;
            case 2 -> 2;
            default -> throw new IllegalStateException("Unexpected value: " + a);
        };
        System.out.println(data);
    }
}

也可以这么写

csharp 复制代码
public class SwitchDemo {

    public static void main(String[] args) {
        int a = 1;
        switch (a) {
            case 1 -> {
                a = a + 1;
                System.out.println(a);
            }
            case 2 -> {
                a = a + 2;
                System.out.println(2);
            }
            default -> throw new IllegalStateException("Unexpected value: " + a);
        }
        ;
        System.out.println(data);
    }
}

不用加break

总结

switch语法在JDK14之后得到转正,新的 Switch 表达式允许在 switch 块中使用 -> 箭头符号来代替 casebreak 关键字,使代码更加简洁明了

相关推荐
一只小松许️6 分钟前
深入理解 Rust 的内存模型:变量、值与指针
java·开发语言·rust
绝无仅有14 分钟前
数据库mysql报错追踪与解决总结
后端·面试·github
Codelinghu15 分钟前
快速入门SpringAI-SpringAI Alibaba实战
后端
ZhengEnCi20 分钟前
@Component 注解完全指南-从入门到精通的 Spring 核心组件管理
spring boot·后端
Penge66623 分钟前
MySQL-隐式类型转换的 “隐形陷阱”
后端·mysql
ZhengEnCi25 分钟前
@ConfigurationProperties 注解完全指南-从入门到精通 Spring 配置属性绑定
spring boot·后端
A阳俊yi31 分钟前
Spring——事件机制
java·后端·spring
码事漫谈42 分钟前
noexcept 的微妙平衡:性能、正确性与接口契约
后端
码事漫谈1 小时前
超越 std::unique_ptr:探讨自定义删除器的真正力量
后端
Fency咖啡1 小时前
Spring进阶 - SpringMVC实现原理(二)DispatcherServlet处理请求的过程
java·后端·spring·mvc