Java SE 14中switch修改开关语法

switch在 Java SE 14 中,您可以为关键字使用另一种更方便的语法:switch表达式。

有几件事激发了这种新语法。

  1. 开关标签之间的默认控制流行为是失败。这种语法容易出错,并导致应用程序中的错误。
  2. 该switch块被视为一个块。如果您只需要在一个特定的case.
  3. switch声明是声明。在前几节的示例中,每个变量都被赋予了一个值case。将其作为表达式可以产生更好、更易读的代码。

上一节中介绍的语法(称为switch 语句)在 Java SE 14 中仍然可用,并且其语义没有改变。从 Java SE 14 开始,可以使用一种新的语法switch:switch 表达式。

此语法修改开关标签的语法。假设您的应用程序中有以下switch 语句。

int day = ...; // any day
int len = 0;
switch (day) {
    case MONDAY:
    case FRIDAY:
    case SUNDAY:
        len = 6;
        break;
    case TUESDAY:
        len = 7;
        break;
    case THURSDAY:
    case SATURDAY:
        len = 8;
        break;
    case WEDNESDAY:
        len = 9;
        break;
}
System.out.println("len = " + len);

使用switch 表达式语法,您现在可以按以下方式编写它。

int day = ...; // any day
int len =
    switch (day) {
        case MONDAY, FRIDAY, SUNDAY -> 6;
        case TUESDAY                -> 7;
        case THURSDAY, SATURDAY     -> 8;
        case WEDNESDAY              -> 9;
    }
System.out.println("len = " + len);

开关标签的语法现在是case L ->. 如果标签匹配,则仅执行标签右侧的代码。此代码可以是单个表达式、块或 throw 语句。由于此代码是一个块,因此您可以在其中定义该特定块的本地变量。

Java SE 14中switch修改开关语法

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注