main()
{int k=5,n=0;
while(k>0)
{ switch(k)
{ default:break;
case 1:n+=k;
case 2:
case 3:n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后,输出的结果是什么?
大虾们,谢谢啦!!!
參考答案:第一次循环k=5,没有对应的case,所以执行代码default:break后执行k--。此时k=4
第二次循环k=4,情况同第一次。此时k=3
第三次,k=3。有对应的case,执行case3:n+=k;此时n=0+3=3。然后k--,k=2
第四次,k=2。有对应的case,执行case2:,因为case2后面没有对应的break,所以接着执行case3,此时n=3+2=5。然后k--,k=1;
第五次,k=1。有对应的case,执行case1,因为case1后面没有break,所以接着执行case2,还没有break,接着继续执行case3,n=5+1+1=7。然后k--,k=0
第六次,k=0不满足k>0的条件,循环结束。执行printf语句,输出结果。