扫码关注官方订阅号
switch 的性能比 if else 性能高很多吗?我看到有很多地方switch直接取代了 if else
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
switch case,因为是直接跳转,只判断一次,if else if条件比较多的时候,可能会判断到最后一个才符合.简单来说就是switch case一次,if else if>=一次
首先,楼上说case只判断一次个人觉得不严谨,当你有多个case的时候,需要去判断每一个case啊!除非你传入的参数进了第一个case就是只判断一次,且你还需要在case中写上break,否则依然是每个都要去执行。
其次,if elseif 判断逻辑上跟swich case是一样的,在这一点上不存在谁更好。所以它们的性能是一样的,不信可以去google上看下。
最后,swicth 什么时候会有优势呢?就是当使用函数结果作为判断依据的时候看下面代码
switch(some_func()) { case 1: ... break; case 2: ... break; } if(some_func() == 1) {} elseif(some_func() == 2) {}
补充说明下:上面代码 if else不是最佳实践,就跟我们在for循环中,循环条件用count一样。我们可以使用中间变量在前面做一个赋值操作。这样就不会每次去调函数,提升效率。
要求:输入一个整数 n,如果 1<=n<=20 输出 n2,如果 21<=n<=50 输出 n3,如果 51<=n<=90 输出 n4,其他输出 n5。
好了,用 if else 实现和 switch 实现,看看谁的效率高。
性能是一样的。至于有很多地方switch直接取代了 if else,是因为当很多条件的时候,switch流程控制看起来简洁很多。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
switch case,因为是直接跳转,只判断一次,if else if条件比较多的时候,可能会判断到最后一个才符合.简单来说就是switch case一次,if else if>=一次
首先,楼上说case只判断一次个人觉得不严谨,当你有多个case的时候,需要去判断每一个case啊!除非你传入的参数进了第一个case就是只判断一次,且你还需要在case中写上break,否则依然是每个都要去执行。
其次,if elseif 判断逻辑上跟swich case是一样的,在这一点上不存在谁更好。所以它们的性能是一样的,不信可以去google上看下。
最后,swicth 什么时候会有优势呢?
就是当使用函数结果作为判断依据的时候
看下面代码
补充说明下:上面代码 if else不是最佳实践,就跟我们在for循环中,循环条件用count一样。我们可以使用中间变量在前面做一个赋值操作。这样就不会每次去调函数,提升效率。
要求:输入一个整数 n,如果 1<=n<=20 输出 n2,如果 21<=n<=50 输出 n3,如果 51<=n<=90 输出 n4,其他输出 n5。
好了,用 if else 实现和 switch 实现,看看谁的效率高。
性能是一样的。
至于有很多地方switch直接取代了 if else,是因为当很多条件的时候,switch流程控制看起来简洁很多。