为何这段C语言代码输出‘123’而非仅输出‘3’?
为什么这段C语言for循环输出是123而不是3?
先看你的代码:
int n = 0; for(n = 1;n<4;n++) printf("%d",n); return 0;
问题出在你对for循环执行流程的理解上,拆解一下这个循环的每一步:
- 第一步:执行
n = 1,这是循环的初始化操作,只在循环开始时运行一次。 - 第二步:判断
n < 4是否成立,成立就执行循环体(这里就是紧跟的printf语句),不成立直接退出循环。 - 第三步:执行完循环体后,执行
n++,然后回到第二步重新判断条件。
具体到你的代码执行流程:
- 初始化n=1,判断1<4成立 → 输出1,随后n自增为2;
- 判断2<4成立 → 输出2,随后n自增为3;
- 判断3<4成立 → 输出3,随后n自增为4;
- 判断4<4不成立 → 循环结束。
所以每次条件满足时都会执行printf,不是只在循环结束后才输出。如果只想输出3,你需要把printf放到循环外部,等循环结束后再打印n的值。
内容的提问来源于stack exchange,提问作者randanee
相关产品推荐
相关产品推荐

