我需要使用动态值实现switch case语句,如下所示。
int v1 = 5;
int key = xx.getKey();
switch (v1) {
case key:
.......
case key+1:
.......
case key+2:
.......
default:
.......
}
使用它时,java抱怨" case表达式必须是常量表达式"。有没有办法在案例中使用动态值。 (开关变量也是动态值)
答案 0 :(得分:8)
您的switch语句中不能包含非常量表达式。但是,您可以通过从key
中减去v1
来使案例保持不变:
switch (v1 - key) {
case 0:
.......
case 1:
.......
case 2:
.......
default:
.......
}
然而,这只能起作用,因为你的案例很简单。正如@BorisTheSpider指出的那样,在更一般的情况下,您需要使用if...else
语句。