因为两次k--
减了两次啊
do while无论如何都会先执行一下加上你的输出语句是k--后--所以第一次输出不影响值就是7
输出语句后又跟后--,但是那时k拿到时已经是6 继续往下走带着--,
到判断是k就=5了,所以可以继续循环,下次进来同第一句 从5开始
一个一个的说,首先是7,因为进入do代码块后,需要打印k--,k--的意思是执行完当前语句后,k才进行减一的运算,所以此时需要打印的k--是没有进行减一的k,也就是7。打印往后执行k减一,紧接着再有一个k--,所以执行完do代码块后,k需要减2,所以执行一次do代码块后,k的值变成了5,5>=0,所以又要在次执行do代码块,和上面的同理,打印本身,然后再减2,得到了3,此时3>=0,所以又要继续执行do代码块,再次按照上面的逻辑,得到1,得到1后,因为1减去2的-1,while中的判断不成立了,所以整个程序终止了