步骤一:创建项目 首先,创建一个新的 Java 17 项目。 // 引用形式的描述信息: 创建一个新的 Java 17 项目 1. 步骤二:编写 switch 块的代码 在项目中,创建一个 Java 类,并编写 switch 块的代码。在这个示例中,我们将模拟一个根据输入月份显示季节的程序。 // 引用形式的描述信息: 在 Java 类中编写 switc...
分别是:byte、short、char、int。对于枚举类型和字符串类型是从 Java 7 开始支持的。switch 的语法格式如下:switch(表达式){ case 匹配值: //语句 break; case 匹配值2: //语句 break; case 匹配值3: //语句 break; default:{ //上面的规则都不存在就执行默认的语句。 }} 执行顺序为: 先求...
首先,Switch语句需要保证所有可能的情况都被覆盖到,确保程序的健壮性。如果我们不提供default语句块,而expression的值与所有case的value都不匹配时,Switch语句将不会执行任何代码,这可能导致程序的不确定行为或错误。通过提供一个default语句块,我们可以在这种情况下进行相应的处理,避免程序的异常退出。 其次,Switch语句的...
int i = switch (day) { case MONDAY -> { System.out.println("Monday"); // ERROR! Block doesn't contain a yield statement } default -> 1;};case2: 以下代码无法编译,因为缺失yield语句。int i = switch (day) { case MONDAY, TUESDAY, WEDNESDAY: yield 0; default...
● switch语句中可以包含一个default默认分支,该分支一般是 switch 语句的最后一个分支,当switch的值和case语句的值不相等时执行。default 分支中不用带有break 语句,另外该分支可以放在任何位置,但建议写在最后面。4. 执行逻辑 根据上面的语法规则,我们可以结合下图来理解switch语句的执行逻辑。switch的执行逻辑,...
于是,在面对这种场景的时候,Java17对switch做了增强,然后我们就可以这样来写: switch (data.get("key1")) {case String s -> log.info(s);case Double d -> log.info(d.toString());case Integer i -> log.info(i.toString());default -> log.info("");} ...
switch (data.get("key1")) { case String s -> log.info(s); case Double d -> log.info(d.toString()); case Integer i -> log.info(i.toString()); default -> log.info(""); } 有没有一下变得很简洁呢? 这里的几个重点值得关注: ...
之前的switch写法如下: 代码语言:javascript 复制 String a="jdk17";switch(a){case"jdk8":System.out.println("我是jdk8");break;case"jdk17":System.out.println("我是jdk17");break;default:System.out.println("未知");break;} 从jdk12后可以通过switch表达式来进行简化。使用箭头“->”,并且不需要每...
于是,在面对这种场景的时候,Java 17对switch做了增强,然后我们就可以这样来写: switch(data.get("key1")){caseStrings->log.info(s);caseDoubled->log.info(d.toString());caseIntegeri->log.info(i.toString());default->log.info("");}
Java 17中的switch表达式得到了改进,可以直接用于模式匹配。在switch表达式中,可以使用case标签后跟模式。 代码语言:java 复制 Stringresult=switch(obj){caseStrings->"字符串:"+s;caseIntegeri->"整数:"+i;default->"未知类型";}; 2.2 实际应用 继续以上面的动物类为例,我们可以使用switch表达式进行模式匹配: ...