我有一个切换案例,在不同情况下可能对应相同的代码片段。
是否有一个优雅的替代方案,而不是复制所有代码?
switch(expression) {
case firstCase:
// do something
break;
case secondCase:
// do exactly the same of first case
break;
case otherCase:
// do anything else
break;
case etceteraCase:
.......
default:
break;
}
我知道作为一种替代方案,我可以创建一个在案例中调用的方法,但这可能会导致难以维护的方法的扩散。
答案 0 :(得分:6)
是:
switch(expression) {
case firstCase:
case secondCase:
// do exactly the same of first case
break;
case otherCase:
case yetAnotherCase:
// do anything else
break;
case etceteraCase:
.......
default:
break;
}
答案 1 :(得分:1)
在第一个案例后删除休息:
switch(expression) {
case firstCase:
case secondCase:
// do the same of first case
break;
case otherCase:
// do anything else
break;
case etceteraCase:
.......
default:
break;
}
答案 2 :(得分:1)
switch(expression) {
case firstCase:
case secondCase:
// do exactly the same of first case
break;
case otherCase:
// do anything else
break;
case etceteraCase:
.......
default:
break;
}
排除break;
将产生您的预期结果。