switch case判断字符串switch语句⽤法详解
当年学C语⾔switch开关语句的时候,很多⼈会告诉你它是这么⽤的:
switch(表达式){
case常量表达式1: 语句1;break;
case常量表达式2: 语句2;break;
…
case常量表达式n: 语句n;break;
default: 语句n+1;break;
}
其语义是:计算表达式的值。并逐个与其后的常量表达式值相⽐较,当表达式的值与某个常量表达式的值相等时,即执⾏其后的语句,然后不再进⾏判断,继续执很多⼈当时都是这么理解的吧。
好,我们来看这样⼀个程序
#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之后加,不过这种default⽤法是不推荐的,default顾名思义是缺省情况,只有任何条件都
不匹配的情况下才会执⾏,所以应该将default语句放在所有case结束之后
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论