c语言while循环的问题
int a=1,y=4;while(y--!=1)
{
a*=y;
a++;
}
printf("%d,%d\n",a,y);
return 0;
为什么打印的是10,0{:10_266:} y--!=1 先判断当前y是否等于1,再执行y=y-1
--y!=1 先执行y=y-1,再判断当前y是否等于1 y = 4 , 第 1 次循环:y = 3 ,a = 1, a = a * y = 3 ,a ++ , a = 4
y = 3 , 第 2 次循环:y = 2 ,a = 4, a = a * y = 8 ,a ++ , a = 9
y = 2 , 第 3 次循环:y = 1 ,a = 9, a = a * y = 9 ,a ++ , a = 10
y = 1 , 结束循环: y = 0 ,a = 10 谢谢
页:
[1]