c - 为什么这个结果出现在 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?
解决方案
这个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
在循环后打印。
推荐阅读
- tomcat - 配置选项的 Tomcat 9 ant 部署问题。为什么?
- ios - 如何在 ViewControllers 之间为不同的 tableViews 提供相同的操作 [swift]
- javascript - Array.splice() 在数组文字上表现一种方式,在另一种方式上保存为 const
- python-3.x - 加入两个 pyspark 数据框以选择第一个 df 中的所有列和第二个 df 中的一些列
- javascript - 使用节点 js/javascript 在 HTML 表中显示来自 SQL 数据库的数据
- reactjs - 如何在本机反应中修复文本元素中的cornerRadius
- android - Google 是否采取了措施来防止恶意 Places API 滥用?
- c# - 将用户输入作为新类实例的名称
- html - R Markdown 不会编织:错误来自绘图图?
- sql - 仅获取最大值,尽管 where = 不是最大值