可以讲一下这道题吗,case2 后面不加break会怎样,为什么结果不是3还会有个2

img

首先k初始为2。走case 2 语句,printf("%d",k++);的意思是先输出k的值,然后再对k+1。所以执行完case2后,k的值为3,此时又满足case 3语句,所以又输出一个3。因为case 3后有个break,所以结束。总结果为输出2、3。
如果是printf("%d",++k);那么就是先对k+1,然后再输出k+1之后的值。