c语言自增与while循环问题

img


这个结果到底是5还是6,怎么来的?我感觉很像5,明明i++=5时就跳出循环了啊,所以应该是5才对,可是为什么又有答案说是6呢?

首先要明白这个i++是后➕➕,无论满不满足条件都➕
i=0满足之后i+1
i=1满足之后i+1
i=2满足之后i+1
i=3满足之后i+1
i=4满足之后i+1
i=5不满足之后i+1
i=6跳出循环体

i=6,当i=5时,循环条件不满足,循环结束,但由于是i++,因此循环结束后i还需要加1,所以是6

6 i++<5 当5++<5不满足,5再++之后就是6

因为i=4时是
i++ 是<5的
i++<5
5<5退出循环,同时++
5就变成6 了呗!


#include<stdio.h>
int main()
{ 
    int x=19;
    do{
    x--;
    }while(x--);
    printf("%d",--x);
    return 0;
}