哪个更好的是switch语句或if-else if-else语句?

时间:2010-04-22 15:37:00

标签: performance if-statement switch-statement

  

可能重复:
  is “else if” faster than “switch() case” ?
  What is the relative performance difference of if/else versus switch statement in Java?

我只是想知道一个人是否更好(即更有效率)。对我来说,除了语法之外似乎是相同的。

2 个答案:

答案 0 :(得分:3)

编译器可以为某些类型的switch语句创建跳转表,这比仅仅像嵌套if语句集一样评估每个元素更有效。这取决于交换机的类型和您正在使用的语言,但许多C编译器在代码生成中就是这种情况。

简而言之,交换机可以更高效,但这取决于您的特定用途。

答案 1 :(得分:1)

除非你有很多案件,否则没关系。如果您有很多情况,那么切换更好,因为编译器为项生成跳转表,因此查找在O(1)而不是O(#cases)中完成。 我还认为交换机比if-else-if链更具可读性。