枚举在switch-case中的语法有坑
Topic source== 比较时,要把类型带出来,所以是Weekday.MON,不然光写一个MON就成了未定义变量了
Switch case 里 因为你在Switch()里面已经写了是 day,而day的类型是Weekday,所以case后面的Weekday就省略了,因为所有的case类型一定是Weekday
其实在IDE里打代码,switch case 会自动提示,所以不用担心
是你没看懂吧!
或者说 你对 switch case 没理解
最后,枚举类可以应用在switch
语句中。因为枚举类天生具有类型信息和有限个枚举常量,所以比int
、String
类型更适合用在switch
语句中:
@yiqzhang3_foryhi 的理解不太对。
@求女票上微博 说的我也不太明白。
按之前的教程
switch case 翻译为 if else 如下:
if (option == 1) {
System.out.println("Selected 1");
} else if (option == 2) {
System.out.println("Selected 2");
}
既然使用 == 比较
那为什么 case 里是:
case MON:
而不是(而且会报错):
case Weekday.MON:
这是不是 enum 的规定?
- 1
用户6200445002
不能用
而只能用
而我们用==比较时,又用的是前者。这两者语法还不一致,有点坑啊