可能重复:
is “else if” faster than “switch() case” ?
What is the relative performance difference of if/else versus switch statement in Java?
我只是想知道一个人是否更好(即更有效率)。对我来说,除了语法之外似乎是相同的。
答案 0 :(得分:3)
编译器可以为某些类型的switch语句创建跳转表,这比仅仅像嵌套if语句集一样评估每个元素更有效。这取决于交换机的类型和您正在使用的语言,但许多C编译器在代码生成中就是这种情况。
简而言之,交换机可以更高效,但这取决于您的特定用途。
答案 1 :(得分:1)
除非你有很多案件,否则没关系。如果您有很多情况,那么切换更好,因为编译器为项生成跳转表,因此查找在O(1)而不是O(#cases)中完成。 我还认为交换机比if-else-if链更具可读性。