①例子

#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

声明:本站为非盈利性赞助网站,本站所有软件来自互联网,版权属原著所有,如有需要请购买正版。如有侵权,敬请来信联系我们,我们立即删除。