Java14 - Switch表达式

Java14 - Switch表达式 首页 / Java入门教程 / Java14 - 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语句就突然完成了。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术与商业案例解读 -〔徐飞〕

朱赟的技术管理课 -〔朱赟〕

DevOps实战笔记 -〔石雪峰〕

大厂晋升指南 -〔李运华〕

Python自动化办公实战课 -〔尹会生〕

程序员的个人财富课 -〔王喆〕

程序员的测试课 -〔郑晔〕

人人都用得上的数字化思维课 -〔付晓岩〕

徐昊 · AI 时代的软件工程 -〔徐昊〕

好记忆不如烂笔头。留下您的足迹吧 :)