我在C中有以下代码源:
#include<stdio.h>
void main()
{
int i=0, x=3;
while((x---1))
{
i++;
}
printf("%d", i);
}
while语句如何工作,为什么打印2而不是1?
最佳答案
因为x---1
实际上只是x-- - 1
,它在递减x - 1
之前产生x
的值。
假设x
的初始值为3,则循环运行2次(一次x = 3,一次x = 2,然后下次x为1,因此x - 1
为0,并且该循环不再运行)。
因此,i
从0开始,并且增加了两次,因此最终为2。