main()
{int k=5,n=0;
while(k>0)
{switch(k)
{defaule:break;
case 1:n+=k:
}
k--;
}
printf("%d\n",n);
}
main()
{int k=5,n=0;
while(k>0)
{switch(k)
{defaule:break;
case 1:n+=k:
case 2:
case 3:n+=k
}
k--;
}
printf("%d\n",n);
题目打错了,不好意思
根据k的值选择程序这里不太明白,不知道怎么选择的,请解释一下,谢谢,k=5,是不是先自减啊
追答如果k=5,因为case语句里没有5这个值,所以执行default后面的语句,即break,跳出switch语句;然后执行k--,此时k=4,也是继续执行default后面的break语句,跳出switch语句;然后执行k--,此时k=3,所以执行case 3后面的语句,即n+=k,结果就是n=3;然后执行k--。如此继续下去……你可以看看这个,可以对switch语句有更深刻的了解。http://see.xidian.edu.cn/cpp/html/39.html
追问那答案怎么是7啊,我算来算去都不是7的
追答k=5时,n不变;
k=4时,n不变;
k=3时,n=n+k=3;
k=2时,n=n+k=5;
k=1时,n=n+k=6,n=n+k=7;
如果你在每个case语句后面加上break语句就不会这样了。那个链接里面的内容好好看看吧,有好处的。http://see.xidian.edu.cn/cpp/html/39.html