switch用法与default解释

switch用法与default解释

 1 switch(表达式)
 2 {
 3     case 常量表达式1: 语句1; break;
 4     case 常量表达式2: 语句2; break;
 5     ……
 6     case 常量表达式n: 语句n; break;
 7     default:    语句n+1; break;   
 8 }
 9 10 //计算表达式的值,并逐个与其后的常量表达式值相比较;
11 //当表达式的值与某个常量表达式的值相等时,则继续执行该case后的语句;
12 //若表达式的值与所有case后的常量表达式均不相同,则执行default后的语句

 

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int c = 0, k;
 5     for( k=1; k<3; ++k)
 6     {
 7         switch (k)
 8         {
 9             default: 
10                 c+=k;//default之后没有break,故不会跳出去
11             case 2:
12                 c++;//会执行case2,此时c=2
13                 break;//再进来还是执行c++,最终c=3
14             case 4:
15                 c+=2;
16                 break;
17         }
18     }
19     printf("%d",c);
20     return 0;
21 }

 

如果default语句在所有case之后,此时可以不加break;

如果default语句之后还有case 语句,不加break会导致default 语句执行过后继续下面的case 语句,故此时必须加break;

不过通常default 写在最后;

关于return 0

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int val1,val2;
 5     char op;
 6     int res=0;
 7     scanf("%d",&val1);
 8     while((op=getchar())!='=')
 9     {
10         scanf("%d",&val2);
11         if(val2==0 && op=='/')
12         {
13             printf("ERROR\n");
14             return 0;//刚开始没有写return 0,分母为0报错,发现最终会打印val1的值
15         }else
16         {
17             switch(op)
18             {
19                 case '+': res=val1+val2; break;
20                 case '-': res=val1-val2; break;
21                 case '*': res=val1*val2; break;
22                 case '/': res=val1/val2; break;
23                 default : puts("ERROR\n");return 0; break;
24                 //这个没有return 0会报非法字符的错,原因同上
25             }
26         }
27         val1=res;
28     }
29     printf("%d\n", val1);
30     return 0;
31 }

 

 

原文链接: https://www.cnblogs.com/luuuw/p/12249092.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    switch用法与default解释

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/326482

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午3:50
下一篇 2023年3月1日 下午3:50

相关推荐