为什么是这个答案呢?

img

x-=2之后x为1,打印1
--x是先自减然后进入判断,x自减为0,!0为真,所以继续循环
x-=2之后x为-2,打印-2
--x是先自减为-3,!-3为假,所以退出循环

先执行3-2,输出1
--x,x=0,!0为1,继续循环,0-2=-2,输出-2,
--x,x=-3,!-3为0,结束循环

注意while()判断 0都是假 非0的都为真
do()while()是先do运行后while判断
还有--1是先运算后取值