main() { int k=5,n=0; while(k>0) { switch(k) { default :break; case 1 :n+=k; case 2 :case 3 :n+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);} 我想知道 结果 7 是怎么算出
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 00:28:18
main() { int k=5,n=0; while(k>0) { switch(k) { default :break; case 1 :n+=k; case 2 :case 3 :n+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);} 我想知道 结果 7 是怎么算出
main() { int k=5,n=0; while(k>0) { switch(k) { default :break; case 1 :n+=k; case 2 :case 3 :n+
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);
}
我想知道 结果 7 是怎么算出来的.到底什么顺序?break 还是按CASE123执行下去?.
main() { int k=5,n=0; while(k>0) { switch(k) { default :break; case 1 :n+=k; case 2 :case 3 :n+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);} 我想知道 结果 7 是怎么算出
第一次循环:k=5,进入switch,由于没有相应case,故跳出循环,k减1=4.
第二次循环:k=4,进入switch,由于没有相应case,故跳出循环,k减1=3.
第三次循环:k=3,进入switch,符合case3,执行n=n+k;n为3,k减1=2.
第四次循环:k=2,进入switch,符合case2,没有语句;n为3,k减1=1.
第五次循环:k=1,进入switch,符合case1,执行n=n+k;n为4,没有break跳出语句,执行case3,n为7.