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?我究竟那里错了?望指教!
| 全能ASP/PHP/ASP.NET主机,支持月付 | 专业 MSSQL 数据库空间,支持月付 | 专业 MySQL 数据库空间,支持月付 | 学习型 ASP/PHP/ASP.NET 主机 30元/年 |
| 高端软件开发 = 年薪十万不是梦 | 赛孚耐:软件保护加密专家 | 身份认证令牌USB KEY |
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);
}
