①例子
#include< stdio.h>
main()
{int k=5,n=0;
do {
switch(k){
case1:case3:n =1;k--;break;
/*當k=1或3時,執行此句,這是兩種case合并成一行了。*/
default:n=0;k--;
/*當k不等于1234時,執行此句,默認兜底情況。*/
case2:case4:n =2;k--;break;}
/*當k=2或4時,執行此句。*/
printf("%d",n);
}
while(k>0&&n<5);
/*此句已經不屬于switch語句,
隻要滿足循環條件k>0且n<5,就繼續将k值輸入switch 語句,
直到條件不滿足,循環結束,輸出結束。*/
}
~
②執行順序
該程序存在嵌套語句,
外層為do{}while()語句,
内層為switch語句和printf語句。
switch語句中有3行3種情況,
根據k值找到對應case标号,
沒有對應case執行默認default情況,
注意:
對應 case或default之後的情況也要執行,直到 switch語句結束。
除非遇到 break,才能提前結束switch語句。
~
③計算過程
第一次循環
初值:k==5,n==0
(1)switch語句
沒有對應case
執行default: n==0,k==4
執行case2:case4:n==2,k==3
break跳出 switch語句
(2)printf語句
打印 n==2
~
第二次循環
k==3,n==2
(1)switch語句
對應case3
執行case1:case3:n==3,k==2
break跳出 switch語句
(2)printf語句
打印 n==3
~
第三次循環
k==2,n==3
(1)switch語句
對應case2
執行case2:case4:n==5,k==1
break跳出 switch語句
(2)printf語句
打印 n==5
~
此時n不滿足循環條件k>0&&n<5
跳出整個do()while()循環
最終打印結果:235
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!