无涯教程: Java 14 – Switch表达式介绍
switch语句允许应用程序基于运行时中给定表达式的值具有多个可能的执行路径。
评估后的表达式称为选择器表达式,其类型必须为 char,byte,short,int,Character,Byte,Short,Integer,String或enum
如果在某些情况下未处理任何遗漏的值,编译器将报错。其他表达式类型(int,string等),我们还必须提供 default 大小写。
public class SwitchExpressions
{
public static void main(String[] argv)
{
System.out.println(isWeekDayV1_1(Day.MON)); //true
System.out.println(isWeekDayV1_2(Day.MON)); //true
System.out.println(isWeekDayV2(Day.MON)); //true
}
//1 - Return value directly
enum Day {
MON, TUE, WED, THUR, FRI, SAT, SUN
};
public static Boolean isWeekDayV1_1 (Day day)
{
Boolean result = switch(day) {
case MON, TUE, WED, THUR, FRI -> true;
case SAT, SUN -> false;
};
return result;
}
public static Boolean isWeekDayV1_2 (Day day)
{
Boolean result = switch(day) {
case MON, TUE, WED, THUR, FRI : yield true;
case SAT, SUN : yield false;
};
return result;
}
//2 - Multiple statements
public static Boolean isWeekDayV2 (Day day)
{
Boolean result = switch(day) {
case MON, TUE, WED, THUR, FRI ->
{
System.out.println("It is WeekDay");
yield true;
}
case SAT, SUN ->
{
System.out.println("It is Weekend");
yield false;
}
};
return result;
}
}
Yield与Return
return 语句将控制权返回给方法或构造函数的调用者。 yield 语句通过使封闭的 switch 表达式产生指定值来转移控制权。
SwitchExpression:
Yield Statement:
yield Expression;
SwitchExpression试图找到正确的YieldStatement,以将控制权转移到最里面封闭的yield目标。SwitchExpression正常终止,并且Expression的值成为SwitchExpression的值。- 如果出于某种原因突然完成了对
Expression的求值,那么出于相同的原因,yield语句就突然完成了。
来源:https://www.learnfk.com/article-java14-switch-expressions
Hi LearnFk.com

浙公网安备 33010602011771号