首页 > 其他 > 详细

switch用法与default解释

时间:2020-02-01 18:54:26      阅读:72      评论:0      收藏:0      [点我收藏+]

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 }

 

 

switch用法与default解释

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!