java中switch case的箭头用法
时间: 2023-10-06 20:10:22 浏览: 219
switch case 中的箭头用法是用来表示每个 case 的执行语句的开始位置,如下所示:
```
switch (variable) {
case value1 -> System.out.println("Value 1");
case value2 -> System.out.println("Value 2");
default -> System.out.println("Default Value");
}
```
在 Java 14 中才引入了箭头语法以简化 switch case 语句的编写。
相关问题
java17 switch用法
Java 17 中的 switch 语句可以用于多种情况,包括:
1. 基本数据类型的比较,如 int、char、byte、short 等。
2. 枚举类型的比较。
3. 字符串类型的比较。
4. 支持多个 case 分支执行同一段代码。
5. 支持 switch 表达式,可以在 case 分支中使用表达式。
6. 支持用 yield 返回值,可以在 case 分支中返回值。
7. 支持使用箭头函数。
下面是 switch 语句的示例:
```java
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
break;
}
}
}
```
此外,Java 17 还添加了一种新的 switch 语句形式,称为“带有模式的 switch 语句”,它支持在 case 分支中使用模式匹配。这个新特性可以简化代码、提高可读性。下面是示例:
```java
public class SwitchExample {
public static void main(String[] args) {
Object obj = "Hello World";
switch (obj) {
case String s && s.length() > 5:
System.out.println("String with length greater than 5: " + s);
break;
case String s:
System.out.println("String: " + s);
break;
case Integer i && i > 0:
System.out.println("Positive integer: " + i);
break;
case Integer i:
System.out.println("Integer: " + i);
break;
case null:
System.out.println("null");
break;
default:
System.out.println("Unexpected object: " + obj);
break;
}
}
}
```
上面的示例中,我们使用了模式匹配来判断对象的类型,并分别处理不同的情况。这样可以在一定程度上避免类型转换和 instanceof 的使用。
java 几 switch 可以使用return了,从几开始可以是箭头-> ,箭头和return的区别是啥
在 Java 12 之前的版本中,switch 语句只能使用 return 来结束代码块。从 Java 12 开始,引入了 switch 表达式(Switch Expressions)的概念,允许在 switch 语句中使用箭头 `->` 来执行相应的代码块,而无需使用 return。
具体来说,从 Java 12 开始,可以在以下三种情况下使用箭头 `->`:
1. Lambda 表达式中的箭头:这是在 Java 8 中引入的箭头语法,用于定义匿名函数。例如:
```java
Function<Integer, String> func = (x) -> x > 0 ? "positive" : "negative";
```
2. 方法引用中的箭头:用于引用已有的方法。例如:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(System.out::println);
```
3. Switch 表达式中的箭头:从 Java 12 开始,可以在 switch 语句中使用箭头 `->` 来执行相应的代码块。例如:
```java
String result = switch (day) {
case "Monday" -> "It's Monday";
case "Tuesday", "Wednesday" -> "It's Tuesday or Wednesday";
default -> "It's another day";
};
```
区别在于,当使用箭头 `->` 执行代码块时,它只是一个普通的代码执行路径,并不会导致整个方法或函数的返回。而使用 return 关键字,则会立即结束方法或函数,并返回相应的值。
在 switch 表达式中,箭头 `->` 后面的代码块将被执行,并且该代码块的结果将成为整个 switch 表达式的结果。如果没有匹配的 case,可以使用 `default` 来指定默认的执行代码块。
需要注意的是,在使用箭头 `->` 执行代码块时,代码块必须是表达式,即具有返回值,并且返回值的类型必须与 switch 表达式的类型一致。如果需要执行多个语句或者需要进行复杂的逻辑处理,可以使用大括号 `{}` 来创建代码块。
阅读全文