c语言循环结构问题,求解

为什么结果a=2,b=8
这个循环过程是怎么样的,只循环了一次ma ?
# include<stdio.h>
main()
{ int a=1,b=10;
do
{ b-=a ;
a++;
} while( b--<0) ;
printf ( "a=%d , b=%d\n",a,b);
}


do b=b-a=10-1=9 a=a+1=2
while判断 9<0不成立不进行下一次循环 b=b-1=8

对只循环了一次
9<0 不成立 跳出循环 b-- b=8