Dha*_*ara 1 java dynamic switch-statement
我需要实现具有动态值的switch case语句,如下所示.
int v1 = 5;
int key = xx.getKey();
switch (v1) {
case key:
.......
case key+1:
.......
case key+2:
.......
default:
.......
}
Run Code Online (Sandbox Code Playgroud)
使用它时,java抱怨"case表达式必须是常量表达式".有没有办法在案例中使用动态值.(开关变量也是动态值)
您不能在switch语句中使用非常量表达式作为案例.但是,可以使案件不断减去key来自v1:
switch (v1 - key) {
case 0:
.......
case 1:
.......
case 2:
.......
default:
.......
}
Run Code Online (Sandbox Code Playgroud)
但是,这只能用于简单的情况.正如@BorisTheSpider指出的那样,在更一般的情况下,你需要使用if...else语句.