Main() {int k=5,n=0; do {switch(k) {case1: case3:n+=1; break;

问题描述:

Main() {int k=5,n=0; do {switch(k) {case1: case3:n+=1; break;
答案是A235 为什么不是2356? K=1的时候怎么不执行case1:case3:n+=1; break;
结果n=6了.请哪位高人写个详细的过程还有为什么不执行k=1时n=6的输出结果的原因! 谢谢!O(∩_∩)O
Main()
{int k=5,n=0;
do
{switch(k)
{case1:
case3:n+=1; break;
Default;n=0;k--;
Case2: case4:n+=2;k--;break;
}
Printf(“%d”,n);
}
while(k>0&&n

default 里面应该也有 break;
(1)k=5,执行默认——>k=4,n=0
(2)k=4,执行case 2和case 4,——>k=3,n=2
(3)执行 2,3,——>k=2,n=3
(4)执行 2,4 ,——>k=1,n=5;
(5)此时出口调节判断条件 k>0&&n