Switch语句小事项:包含增强的 switch 语句

Switch语句

一、case语句可以合并

case后面只能是字面量值这样的值,不能使用变量。

import java.util.Scanner;

public class SwitchTest01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Integer month = sc.nextInt();
        String str;
        switch(month) {
            case 3: case 4: case 5:
                str="春天";
                break;
            case 6 : case 7: case 8:
                str="夏天";
                break;
            case 9: case 10: case 11:
                str="秋天";
                break;
            case 12: case 1: case 2:
                str="冬天";
                break;
            default: str="请输入正确月份";
        }
        System.out.println(str);
    }
}

二、Java12中switch的新特性

增强的 switch 语句是Java 12中引入的一项语言特性,它在Java 14中得到了进一步改进。这个特性的目的是提供更简洁、灵活和易读的 switch 语法。
传统的 switch 语句在处理多个条件分支时可能存在一些问题,例如需要使用 break 语句显式地结束每个分支,容易出现忘记添加 break 而导致多个分支执行的情况。
增强的 switch 语句解决了这些问题,并引入了一些新的语法特性。

增强的 switch 语句的特点如下:

  • 使用表达式作为分支条件: 增强的 switch 语句允许在每个 case 分支中使用表达式,而不仅限于常量。这使得代码更加灵活,可以更方便地处理各种条件。
  • 无需显式 break: 在传统的 switch 语句中,每个 case 分支必须以 break 语句结束,否则会继续执行下一个分支。而增强的 switch 语句不需要显式地使用 break,每个分支会自动结束,不会继续执行下一个分支。
  • 使用箭头(->): 在增强的 switch 语句中,分支的语法使用箭头(->)来连接分支的条件和执行语句,这使得代码更加简洁和易读。
  • 引入 yield 关键字: 在Java 14中,增强的 switch 语句引入了 yield 关键字,用于在分支中返回值。这使得 switch 语句可以像表达式一样返回值,增强了其功能性。
public class EnhancedSwitchExample {
    public static void main(String[] args) {
        int day = 3;
        String dayType = switch (day) {
            case 1, 2, 3, 4, 5 -> "Weekday"; // 使用表达式作为分支条件
            case 6, 7 -> "Weekend";
            default -> { // default分支
                yield "Invalid day"; // 使用yield返回值
            }
        };
        System.out.println("Day type: " + dayType);
    }
}

class  Switch01{
    public static void main(String[] args) {
        switch(expression){
            case 1-> System.out.println("switch");
            case 2 -> System.out.println("Change in");
            case 3 -> System.out.println("Java12");
            default -> System.out.println("default");
        }
    }
}
class Switch02{
    public static void main(String[] args) {
        switch (expression){
            case 1,2,3 -> System.out.println("123");
            default -> System.out.println("default");
        }
    }
}
class Switch03{
    public static void main(String[] args) {
        switch (expression){
            case 1 ->{
                System.out.println("Java");
                System.out.println("Wow!");
            }
        }
    }
}


最后欢迎大家踩踩我的博客 Camellia白山茶
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值