#include <stdio.h> main() { int s=0,k; for (k=7;k>=0;k--) { switch(k) {

case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; } } printf("%d",s); } 这个计算机是怎么执行的啊

进入k=7的循环
因为k=7,所以执行s++,现在s=1
进入k=6的循环
因为k=6,所以执行break,现在s=1
进入k=5的循环
因为k=5,所以执行s+=2,现在s=3
进入k=4的循环
因为k=4,所以执行s++,现在s=4
进入k=3的循环
因为k=3,所以执行break,现在s=4
进入k=2的循环
因为k=2,所以执行break,现在s=4
进入k=1的循环
因为k=1,所以执行s++,现在s=5
进入k=0的循环
因为k=0,所以执行s+=2,现在s=7
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-06
没有break的时候,只要有一个case匹配了,剩下的都有执行,有break的时候则是直接跳出了switch语句,break在c语言中就是分手,一刀两断的意思。这一题m,s值如下,竖着对应。
m=7 6 5 4 3 2 1 0
s=1 1 3 4 4 4 5 7
所以最后s=7
明白了吗