博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
switch 和 if...else if 的区别
阅读量:6330 次
发布时间:2019-06-22

本文共 454 字,大约阅读时间需要 1 分钟。

     为什么很多人用  if...else..if   而不使用   switch

 

1,if...else...if

 

  只是单纯地一个接一个比较;if...else可能每个条件都计算一遍;
2,switch

使用了Binary Tree算法;绝大部分情况下switch会快一点,除非是if-else的第一个条件就判断到了。

编译器编译switch与编译if...else...不同。不管有多少case,都直接跳转,不需逐个比较查询;switch只计算一次值,然后都是test , jmp,

有很多else if的时候,用switch case比较清晰!

switch使用查找表的方式决定了case的条件必须是一个连续的常量。而if-else则可以灵活的多。

所以,只有分支比较少的时候,if效率比switch高,因为switch有跳转表。

分支比较多,当然选择switch比较好。

部分节选自知乎作者:非著名程序员

 

 

转载于:https://www.cnblogs.com/ermaoblog/p/10008379.html

你可能感兴趣的文章
python 日志打印
查看>>
0319-流程控制
查看>>
Javascript鼠标滚轮事件兼容写法
查看>>
正则入门
查看>>
无限极分类原理与实现
查看>>
iOS GCD_1
查看>>
[BZOJ 3143][Hnoi2013]游走(高斯消元+期望)
查看>>
【LibreOJ】#541. 「LibreOJ NOIP Round #1」七曜圣贤
查看>>
PHP 基础
查看>>
词法分析器的设计与实现
查看>>
Citrix 未注册解决办法
查看>>
项目管理利器taiga快速安装
查看>>
Docker for windows挂载文件到Nginx目录踩坑小记
查看>>
DBA大牛告诉你,如何让MySQL语句执行加速?
查看>>
sort排序问题
查看>>
Xamarin 简单的网络请求
查看>>
(volatile int)(x)与*(volatile int *)(&x)
查看>>
c++版a+b问题的各种无聊做法
查看>>
1.Maven之(一)Maven是什么
查看>>
poj 2406 Power Strings
查看>>