最后:在一般情况下,我们通常会去使用if语句而不是switch,因为if语句在编程时更加得心应手,所以我们可以暂且忽视效率而去选择更加便利的编写方式。 实例 case分支少的switch语句 CPP代码: #include"stdafx.h"voidFun(intx){switch(x) {case1:printf("%d",1);break;case2:printf("%d",2);break;case3:printf...
switch语句的执行效率远远高于if..else 在分支条件比较多的情况下,这种趋势愈发明显 观察switch语句的反汇编,看看switch语句为啥效率高 为啥switch比if..else效率高 游戏中的switch语句 switch(x){case1:printf("A \n");break;case2:printf("B \n");break;case3:printf("C \n");break;default:printf("defa...
反过来看下switch结构,switch结构很巧妙的运用了“跳转”的思想,对任何一个case值的判断,和值在代码中的排列顺序无关,都会直接“跳转”到符合条件的case块中,所以,执行速度比if结构快得多,而且与值在代码中的排列顺序无关!反汇编代码可以看出,switch结构不仅比if结构执行效率高,占用空间也少!看图: 相信看了上面的...
switch语句和if语句一个不同的点在于,switch语句只能对一个变量进行范围上的划分,而if语句内的判断条件可以表达更丰富的逻辑。switch的这个特点也带来了一个优化的空间,那就是使用二分查找的方式去定位到具体的case。还是上面的例子,如果开启了编译优化选项-O,编译器将使用二分查找的方式来优化switch语句。 先是已70...
switch 通常处理算术表达式,或字符,当它等于什么什么,转向做什么。switch相当开关 如果“比较整数”,i1 是否大于 i2, 当然用if 如果决定转向,例如 i=1 画直线,i=2 画曲线,i=3 画圆,i=4 画虚线直线, i=5 画虚线曲线, i=6 画长方形 i=其他值 返回重选 这当然用switch,switch 执行...
2. if else和switch的效率 https://blog.csdn.net/spy19881201/article/details/5851792 先记录下这两篇博文中的结论: 1. switch和if-else相比,由于使用了BinaryTree算法,绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true. 2. 编译器编译switch与编译if...else...不同,对switch-case会生成...
两个的用法都不一样,一般if是写一个条件,switch是列举一些值来判断,看你需要哪种类型的,这两个一般没有说谁效率高的,像楼上说的那种情况,只要是正常人都会选择用if来写啦。如果是像那个经典的例子判断分数段来显示优良中差的,相信也没几个会用if来写。
最主要的还要看程序怎么写。不过switch看起来比较简洁,如果符合哪个条件就转向谁!if的话,如果是多层嵌套判断的话就比较麻烦了!
if和switch效率的再研究 昨天发现了一本叫做CSAPP的书,终于找到了关于switch问题的解答。 这是一段C代码: /* $begin switch-c */ int switch_eg(int x) { int result = x; switch (x) { case 100: result *= 13; break; case 102: result += 10; ...