switch...case...和if...else...区别
来源:互联网 发布:淘宝买的邮票是真的吗 编辑:程序博客网 时间:2024/05/05 04:26
switch 和 if 都是用来处理分支语句的,那么使用的时候,考虑到代码效率问题,就必须先来了解他们有什么区别。
先来看看这两个语句的使用格式:
- if…else…
if (表达式1) { 语句1; } else if (表达式2) { 语句2; } else if (表达式3) { 语句3; } else if (表达式4) { 语句4; } ... else { 语句n+1; }
- switch…case…
switch (表达式) { case 值1:语句1;break; case 值2:语句2;break; case 值3:语句3;break; case 值4:语句4;break; case 值5:语句5;break; ... default:语句n+1;break; }
if语句每执行一次都要先判断条件表达式是true还是false,为true时执行相应语句,若为false则继续判断下一个表达式,直到最后一个else结束。线性执行。
switch语句只需在入口时计算表达式的值,然后查找跳转表,执行对应语句,否则default。类似二叉树。
区别一:
switch…case…只能用于case值为常量的分支结构,而if…else…更加灵活。
区别二:
if判断条件为逻辑表达式,可以是布尔类型的合法表达式、可以是常量、枚举等。而switch 通常处理算术表达式,或字符。。
区别三:
switch 进行一次条件判断后直接执行到程序的条件语句。而if…else 有几种条件,就得判断多少次。
区别四:
相比if语句,switch语句是以空间换时间的分支结构。因为它要生成跳转表,所以占用较多的代码空间。当case常量分布范围很大但实际有效值又比较少的情况,switch…case的空间利用率将变得很低。
区别五
分支较多时,使用switch的效率高于if,除非第一个if条件就为真。。
其次,当分支较多时,使用if…else…代码可读性不如switch…case…高。
0 0
- switch...case...和if...else...区别
- if...else和switch..case
- if else和switch case
- switch case 和 if else 的区别及运行效率
- C#中的分支结构:if..else if 、if... else 和 switch ...case语句的区别
- if else 与 switch case的区别:
- 优化if else 和 switch case 结构
- switch...case和if...else效率比较
- 分支结构 if...else和switch...case
- switch...case和if...else效率比较
- 判断语句switch - case 和if - else
- switch...case和if...else效率比较
- if.....else if .....else 与switch....case.....
- C#分支结构if,if-else,if-else if,switch-case区别
- if...else if...和switch...case...执行效率
- C语言中switch case语句的实现(switch case 和 else if 的比较、区别)
- switch case 与 if else
- if else 与 switch case
- js闭包解析
- 随机密码约瑟夫环
- Java文件拷贝的几种实现方案
- Spring面试问答Top 25
- hrbust 哈理工oj 2016 势力较量 (并查集)
- switch...case...和if...else...区别
- 递归递推之马拦过河卒
- LeetCode:153. Find Minimum in Rotated Sorted Array
- JavaSE_48th_缓冲流
- Activity如何后台运行?不是缓存,是运行。
- thinkphp标签实现bootsrtap轮播carousel实例
- 删除链表中倒数第N个节点
- Hibernate注解方法使用总结
- 2017/3/24 java中的LocalDate类