java: 在 switch 中使用了不同 case 类型
时间: 2024-10-27 19:07:39 浏览: 15
Java switch case数据类型原理解析
5星 · 资源好评率100%
在Java中,`switch`语句通常用于处理一系列预定义的"情况"或"分支",每个分支对应一个常量值、枚举值或者是整数类型的表达式。如果你尝试在`switch`语句中混合不同类型的情况,例如:
```java
int num = 5;
String dayOfWeek = "Monday";
switch (num) {
case 'M':
System.out.println("Number is M");
// 这里会抛出错误,因为'case'关键字后面需要的是常量而不是字符串
case dayOfWeek: // Java 7及以上版本允许字符串与枚举作为case,但这不是常规做法
System.out.println("Day of week is " + dayOfWeek);
break;
default:
System.out.println("Invalid number");
}
```
在这个例子中,第一个`case`部分会遇到编译错误,因为不能直接将字符串赋给`case`。标准的`switch`语句只适用于数值类型的情况。如果想根据字符串内容匹配,可以考虑使用`if-else if-else`结构,或者从Java 7开始的模式匹配(Pattern Matching),但这并不是`switch`的标准用法。
然而,对于枚举类型,你可以这样做:
```java
public enum Day { MONDAY, TUESDAY, WEDNESDAY }
Day day = Day.MONDAY;
switch (day) {
case MONDAY:
case TUESDAY:
case WEDNESDAY:
System.out.println(day.name());
break;
default:
System.out.println("Invalid day");
}
```
这里,`switch`可以处理枚举类型的值。
阅读全文