switch语句中default用法详解
来源:互联网 发布:淘宝物流详情页面html 编辑:程序博客网 时间:2024/05/18 12:41
当年学C语言switch开关语句的时候,很多人会告诉你它是这么用的:
switch(表达式){ case常量表达式1: 语句1;break; case常量表达式2: 语句2;break; … case常量表达式n: 语句n;break; default : 语句n+1;(break;) }其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
很多人当时都是这么理解的吧。
好,我们来看这样一个程序
#include <stdio.h>int main(){int c= 0, k;for (k = 1; k < 3; k++)switch (k){ default:c += k; case 2: c++; break; case 4: c += 2; break;}printf("%d",c);return 0;}你觉得答案会是多少?
答案是3。
分析一下这个题目,首先看上去第一眼就很怪,怎么把default放在第一句了。那么程序是怎么执行的呢?
当k=1的时候,c+=k ——>c=1 这个时候要注意了,default后面并没有break,所以并不会跳出去,会执行case2,c++
——>c=2,遇到break,跳出。
当k=2的时候,执行case2 ,c++——>c=3;遇到break,跳出。
所以这里总结一下default的用法:
如果default语句在所有case最后,此时可以不加break 如果default语句之后还有case语句,如果不加break,则default语句执行过之后会继续下面的case语句,此时必须要在default之后加break语句,不过这种default用法是不推荐的,default顾名思义是缺省情况,只有任何条件都不匹配的情况下才会执行,所以应该将default语句放在所有case结束之后
2 0
- switch语句中default用法详解
- php中switch语句用法详解
- java中switch语句用法详解
- switch语句用法详解
- 关于Switch语句中default的位置
- js中Switch 中default 的用法
- js中Switch 中default 的用法
- switch语句的用法详解
- python中switch语句用法
- switch置 default 用法
- C语言switch语句的用法详解
- switch语句default与break
- 黑马程序员—switch中default的用法
- PHP中Switch语句的用法
- Java中Switch Case语句的用法
- java中switch语句的用法
- switch case语句中的default语句
- PHP中switch,case的用法详解
- HttpServletRequest接口
- vmlinuz还原成vmlinux
- 二叉查找树
- Spring框架组件分析
- DeepLab v2安装问题解决-------安装笔记
- switch语句中default用法详解
- JNI
- 无法获得锁 /var/lib/dpkg/lock
- PHP 函数(1)
- 【Javaweb】笔面试题 ---(1)
- Spring-Bean之基于注解(Annotation)装配解析
- 单例模式
- leetcode136 Single Number136 Java
- Android从服务器取数据