先执行一次 a=a+1
然后while中相当于先while(x)然后x-- 满足条件,x变成0
再执行一次 a=a+1
然后while(0)不满足 x变成-1 退出do while
首先,do ~ while语句至少执行一次你肯定知道吧。。。
首先执行a = a+ 1,a的初始值为0,经过这一步 a = 0 ---> 1
然后while()里面的结果只有两个可能,true或者false,在c++里面false的值等于0,其他值全是true
while里面很明显没有啥判断大小的语句,里面的x,x--是一个复合语句,即逗号语句,逗号语句的每一步都会执行,但是逗号语句的值为最后一个子语句的值
这里首先执行x, 即x值不变,然后执行x--,注意这里是x--不是--x,x--是将x的目前值作为结果返回给母语句,即逗号语句,之后才进行x = x -1的步骤,即第一次的while实际上是(1,1),但是x的值经过这个语句后已经变成0了;
然后执行第二次a =a +1,即a = 1 ----> 2
然后执行while语句里面的逗号语句,仿照第一次,这里的实质是首先x不变,即0,然后执行x--,x--这个语句首先将自己当前值给母语句即将0给母语句,然后x =x -1,即x = 0---->1,while的实质是(0,0),因为等于0了嘛,所以就是false结果,退出循环。
综上可得,a = 2, x = -1
(题主可以试着将x--改成--x,那么只执行一次循环,x的结果为0,x--和--x的顺序有点不一样,第一次while是(1, 0),可以百度)
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html