switch 的性能比 if else 性能高很多吗?
我看到有很多地方switch直接取代了 if else
switch case,因为是直接跳转,只判断一次,if else if条件比较多的时候,可能会判断到最后一个才符合.简单来说就是switch case一次,if else if>=一次
要求:输入一个整数 n,如果 1<=n<=20 输出 n2,如果 21<=n<=50 输出 n3,如果 51<=n<=90 输出 n4,其他输出 n5。
好了,用 if else 实现和 switch 实现,看看谁的效率高。
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.4k 阅读✓ 已解决
792 阅读
638 阅读
首先,楼上说case只判断一次个人觉得不严谨,当你有多个case的时候,需要去判断每一个case啊!除非你传入的参数进了第一个case就是只判断一次,且你还需要在case中写上break,否则依然是每个都要去执行。
其次,if elseif 判断逻辑上跟swich case是一样的,在这一点上不存在谁更好。所以它们的性能是一样的,不信可以去google上看下。
最后,swicth 什么时候会有优势呢?
就是当使用函数结果作为判断依据的时候
看下面代码
补充说明下:上面代码 if else不是最佳实践,就跟我们在for循环中,循环条件用count一样。我们可以使用中间变量在前面做一个赋值操作。这样就不会每次去调函数,提升效率。