开始i = 0,x = 0,y=0
执行循环;
++i(i=1); i%2=1 if成立,x=x+i=0+1=1, i++(i=2), y+=i++(等价于y = y+i,i++,y=2,i=3),i<=7成立,继续执行循环:
++i(i=4); i%2=0 if不成立, y+=i++(等价于y = y+i,i++,y=2+4=6,i=5), i<=7成立,继续执行循环
++i(i=6); i%2=0 if不成立, y+=i++(等价于y = y+i,i++,y=6+6=12,i=7), i<=7成立,继续执行循环
++i(i=8); i%2=0 if不成立, y+=i++(等价于y = y+i,i++,y=12+8=20,i=9), i<=7不成立,结束循环
所以最后
i=9,x = 1,y= 20
你可以看下i值的情况,只有i=1的时候,才满足if判断。所以if内只执行了一次。
如有帮助望采纳。点击我回答右上角【采纳】按钮。
逗号结尾是说这是同一行命令,也就是说i++只有在i%2==1的时候才会执行…