首先你需要明白前缀自增运算符和最后自增运算符,前缀是先加后用,后缀是先用后加。
然后就是执行while里面的语句的条件是只要不为0即可。
现在开始分析程序:
a=-2,条件为真,a++,a=-1;++b,b=1,条件为真。执行;语句之后开始下一次:
a=-1,条件为真,a++,a=0;++b,b=2,条件为真。执行;语句之后开始下一次:
a=0,条件为假,a++,a=1。因为前面的条件为假,后面不执行++b了。
现在a=1,b=2。
当a值为0,b=2时,表达式a++值为0
由于&&运算符的短路效应,左侧表达式值已经为假(0),右侧表达式不再判断,所以b值仍然为2
a++因为++后缀,之所以a值变为1