Is there any reason to use switch statement instead of strings of if and elseif?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Advantage of switch over if-else statement
Why the switch statement and not if-else?
switch语句似乎完全无用。它可以做的任何事情都可以通过if和else if链接来完成。
它们甚至可能编译成相同的代码。
那么,为什么还要麻烦呢?
switch中的
这是ObjuleC,C,C++。我不确定vb.net是否有switch语句,但即使有,我也一定忘记了,因为我从未使用过它。
它们可以编译成相同的代码。但目的不一定是提供更好的编译代码,而是提供更好的源代码。
你也可以用
1 2 | for (i = 0; i < 10; i++) doSomethingWith (i); |
或:
1 2 3 4 5 6 7 8 | i = 0; loop12: if (! (i < 10)) goto skip12 doSomethingWith (i); i++; goto loop12 skip12: |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | if (color == WHITE) { } else if (color == BLACK) { } else if (color == GREY) { } else if ((color == ORANGE) || (color == GREEN) || (color == BLUE)) { } else { } |
VS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | switch(color) { case WHITE: break; case BLACK: break; case GREY: break; case ORANGE: case GREEN: case BLUE: break; default: break; } |
后者是否更易读,需要更少的按键?
赞成的意见:
与
欺骗:
在最坏的情况下,交换机的性能与if和else if块相同。可能会更好。这在前面已经讨论过:切换if else语句的优点