我正在寻求切换,其中5个案例在功能上相同,但随后会有其他独特案例。有没有办法列出处理5个不同值的案例值?谢谢
您可以在交换机中复合标签
switch (variable) {
case 'a': case 'b' : case 'c' : case 'd' :
do something;
break;
case 'e': case 'f' :
do something else
break;
default:
do something;
}
将开关视为跳转到标签(可能伴随跳转(中断)到最后)将有所帮助。这意味着开关
switch (variable) {
case 'a': case 'b' : case 'c' : case 'd' :
do something;
// note that there's no break here.
case 'e': case 'f' :
do something else
break;
default:
do something;
}
为'a','b','c'和'd'做“做某事”和“做别的事”;虽然它只会为'e'和'f'“做其他事情”。最后,如果它不是上述任何一个,它会触及默认的“做某事”。
switch (value) {
case 1:
case 2:
case 3:
case 4:
doSomethingIdentical();
break;
case 5:
doSomethingDifferent();
break;
default:
break;
}
这很容易做到。不要只有一个案例值来处理所有5个不同的值,而是将5个案例值相互映射,如下所示:
switch(value)
{
case 1:
case 2:
//case 1 and 2 will both result in this code being executed
doSomething();
break;
case 3:
doSomethingElse();
break;
}
只要你没有在开关上放置break;
,它就会落到下一个声明中。
这样,你就可以得到这样的东西:
String value(int val) {
String out = "";
switch(val) {
case 0:
out = "case 0";
break;
case 1:
out = "case 1";
break;
case 2:
case 3:
case 4:
case 5:
case 6:
out = "case 2, 3, 4, 5 or 6";
break;
case 7:
out = "case 7";
break;
}
return out;
}
是的,只需使用这样的开关:
switch(v) {
case 1:
case 2:
case 3:
identicFunctionality();
break;
case 4:
other01();
break;
case 5:
other02();
break;
default:
_default();
}