main
{ int y=10; 此行执行完毕Y应该依次为10,7,4……
do {y--;}while(--y); 此行执行完毕Y应该为8,5,2……
printf("%d\n",y--); 输出时候Y应该也为8,5,2……
}
若再次循环回到一步,Y应该等于1了,在执行Y--,与--Y之后不成-1了吗,为什么答案是0?我究竟那里错了?望指教!
do {y--;}while(--y);
此循环语句中止的条件是什么?搞清这个就搞清这个问题了。
y值变化规律:
10 8 6 4 2 0
他们为同余数!
应该是while(--y); 吧,
循环每执行一次,在此循环应该是减3对吧,
执行完printf("%d\n",y--);后,Y应该减一啊!
main()
{ int y=10;
do { printf("Y_do_while_1=%d\n",y); y--; printf("Y_do_while_2=%d\n",y); }while(--y);
printf("Y_2=%d\n",y);
printf("%d\n",y--);
printf("Y_3=%d\n",y);