#include <stdio.h>
int main()
{
int x = 2;
while (x--)
{
x-=1;
}
printf("%d\n", x);
}
为什么循环次数是是1,最后结果是-1
执行完while(x--)后,x=x-1=1;
然后执行:x-=1=x-1=0。
此后在执行while(x--),但此时x=0,不满足循环条件,所以不进入循环。但是x--照样执行,所以x=x-1=0-1=-1
while (x--)是判断x原本的值,之后再对x减小1
while (x--)循环判断之后x减小 1,循环中x-=1;又减小 1,等于一次循环x减小了 2
x初始是2
while (x--)循环判断x是2,2为真继续循环,之后x减小1 变成1,循环中x-=1;又减小1, 变成0
之后再进行while (x--)循环判断x是0,0为假结束循环,判断x之后x还是要减小1, 就变成-1了
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
while循环中x-=1使得x=1,然后下一次循环前要执行x--,使得x=0,这样第二次循环条件不满足,循环结束,但循环结束后,还需要执行x--,所以最后x值为-1
第一次循环判定是x为2,循环执行x--后x变为1,在循环体中又-1,x此时变为0
第二次进入while时x为0,不满足条件,跳出循环
因为执行了x--,所以循环结束后x的值为-1