if(var == something) {
A();
B();
} else if(var == something_else) {
A();
B();
C();
} else {
assert(false);
}
如何避免在 if
两种情况下调用 A() 和 B() 的重复代码。我应该使用 switch case 吗,
switch(var) {
case something:
case something_else:
A();
B();
break;
}
if (var == something_else)
C():
什么是更好的解决方案? switch
与 if else
有任何性能损失吗?
最佳答案
if (var == something || var == something_else) {
A();
B();
}
if (var == something_else) {
C();
}
如果你还需要else
,你可以这样做:
if (var == something || var == something_else) {
A();
B();
if (var == something_else) {
C();
}
} else {
assert(false);
}
关于你的问题,
Is there any performance penalty in switch vs if else?
请阅读这个问题的答案:
简而言之,通常不会有任何明显的差异。所以你应该在编写代码时考虑到可读性。在 if/else
和 switch
之间,选择更自然的。
关于c - 在下面的伪 C 代码片段中避免重复代码的方法应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33233384/