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 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM