c语言do while 练习题

img


答案给的最后结果是8 但是我一直算结果是3
我不理解在switch那块第六次循环开始c=G
不是要按顺序去往下先走switch里面的吗
为什么可以直接跳出循环啊?

是一步一步走的啊,你怎么算的呢
先进入B,k--,k++,抵消了,k还是0
然后C,k+=2,k++,k==3
D,k%2,k==1,k++,k==2
E,k=k*10,k==20,k++,k==21
F,k=k/3,k==7,k++,k==8
这不刚好是8吗,3是怎么算出来的
我猜你不知道k++是在循环里的吗

你这3的答案又是怎么个计算过程呢?
计算过程很简单啊, 就是A-E和default六个k的变化表达式全部执行一遍,每次执行完,都需要k++,就得到结果了

switch case 有break就不会继续往下走,break只是跳出switch,不是跳出while循环