增量运算符在循环中如何工作?

Pan*_*ato -1 c post-increment do-while

#include <stdio.h>
int main(){
    int i = 0;

    do {
        i++;
        printf("In while loop\n");
    } while (i < 3);
}
Run Code Online (Sandbox Code Playgroud)

输出:

In while loop
In while loop
In while loop
Run Code Online (Sandbox Code Playgroud)

为什么printf语句被执行三次?一旦循环开始,i的值变为1,所以循环应该只运行2次但它运行3次,怎么样?

fed*_*024 6

伪代码:

i = 1
=> In while loop
i = 2
=> In while loop
i = 3
=> In while loop
exit from loop
Run Code Online (Sandbox Code Playgroud)

仅在printf之后检查条件.