for/while和if/switch
2018-04-09 10:16
225 查看
for适合用于知道循环次数的情况,而while循环适用于知道循环条件的情况。while循环更强大。它们两个的效率基本没有差别。gcc test.c -g/gcc -c test.c ->a.oobjdump -d a.o//查看程序对应的汇编代码switch(会生成跳转表):1、当case语句小于等于3句的时候,switch语句的底层实现与if-else的底层实现相同。2、当case语句大于等于4句时,且每两个case语句之间产生的的间隔之和不超过6时,按线性结构查找。3、当case的最大值和case的最小值之间值相差大于255的情况下,采用树形结构查找。switch和if-else的效率比较(不考虑编译器的优化和条件传送,只考虑跳转次数):switch........case结构中有跳转表,所以只要经过一次比较就可以正确的找到跳转分支,所以平均情况下跳转次数为1. switch........case在分支较多的时候比if...........else要高效。但是它只能进行字符和数字的判断,相比较而言,if..........else更加灵活,适用范围更广,功能更强大。
相关文章推荐
- 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句
- C/C++学习(一)题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
- 《剑指offer》上的一道原题,求1+2+……+n,要求不能使用乘除法,for、while、if、else、switch、case等关键字以及条件判断语句
- JS:1.2,控制语句(if,if else,for,switch,while,do while)
- JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结
- Swift控制语句(if,switch,forin,for,while,dowhile)
- 笔记:循环(for, if, do...while, break, switch)
- C语言奇思妙想:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句(A?B:C)
- 题目:求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句
- 【Swift】学习笔记(五)——控制语句(if,switch,for-in,for,while,do-while)
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- 求1+2+…+n 要求不能使用 乘 除 法、for、while、if、else、switch、case等关键字以及条件判断语句
- swift控制语句,for,while,repeat-while,if,switch
- 求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
- 求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句
- 【练习】题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句
- 求解1+2+3+...+n,要求不能使用乘除法、while、for、if 、else、switch、case等关键字
- 实现1+2+3+...+n。要求不能使用乘除法,for,while,if,else,switch,case,等关键字及条件判断语句。
- 输入一个大于1的正整数N,求1+2+。。。+N 要求是不能使用乘除法,for,while,if,else,switch,case等关键字以及A?B:C
- Java基础第一阶段——03_Java语言基础_运算符&if&while&switch&for语句