首页 > 解决方案 > 为什么这个结果出现在 for 语句中?

问题描述

我只是学习陈述

#include <stdio.h>

int main() {
    int i = 0;

    for (i = 0; i < 10; i++) {
        printf("%d", i);    // 0~9
    }

    printf("\n%d", i);      // 10

    return 0;
}

在这段代码中

尽管 i < 10,但我怎样才能达到 10?

标签: c

解决方案


这个for循环相当于,

int i = 0;
while(i < 10){
    printf('%d', i);
    i++;
}

所以,

我在循环开始 条件检查 我在循环结束
0 true(循环运行) 1 (i = 0 + 1)
1 true(循环运行) 2 (i = 1 + 1)
2 true(循环运行) 3 (i = 2 + 1)
3 true(循环运行) 4 (i = 3 + 1)
4 true(循环运行) 5 (i = 4 + 1)
5 true(循环运行) 6 (i = 5 + 1)
6 true(循环运行) 7 (i = 6 + 1)
7 true(循环运行) 8 (i = 7 + 1)
8 true(循环运行) 9 (i = 8 + 1)
9 true(循环运行) 10 (i = 9 + 1)
10 false(休息) -

因此,i表的最后一个值为 10(i现在是 10)。这意味着,当循环中断时,i为 10。这就是为什么您可以10在循环后打印。


推荐阅读