关于#c语言#的问题:能有人帮我解释一下答案吗

img


能有人帮我解释一下答案吗?这到底是怎么做的,不是++k了吗?怎么就没算上呢?

  • switch 里面 是 k + 1 匹配, k = 10, k +1 = 11,这时 k 还是 10
    • 匹配 case 11, ++k 之后,k = 11
    • 继续 匹配 case 12,++k 之后,k = 12,break 退出 switch

第一题:k=10,switch(k+1)会选择case11的分支,但case11没有break,因此执行完会直接向下执行case12的分支,这是k相当于进行了两次自加,得到k=12;
第二题:k=9,switch(k+1)会选择case10的分支,进行一次自加就break退出,这时得到k=10.
希望结果对你有用!