You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++ do-while循环中前置与后置自增运算符输出差异疑问

do-while循环中前后置自增操作的输出差异原理

两段代码的输出差异完全来自**后置自增(n++)和前置自增(++n)**的执行逻辑不同,结合do-while「先执行循环体、后判断循环条件」的特性就产生了不同结果:


第一段代码(使用n++)执行逻辑

#include <iostream>
#include <string>
using namespace std;
int main()
{
   int n = 1;
   do
   cout << n << " " ;
   while (n++ <= 3);
}

后置自增n++的规则是:先返回变量当前的原始值参与表达式判断,再对变量执行+1操作。逐轮执行流程如下:

  • 初始值n=1
  • 第1轮:先执行循环体输出1 ,判断条件时取当前n=1比较(1<=3成立),随后n自增为2,循环继续
  • 第2轮:执行循环体输出2 ,判断条件时取当前n=2比较(2<=3成立),随后n自增为3,循环继续
  • 第3轮:执行循环体输出3 ,判断条件时取当前n=3比较(3<=3成立),随后n自增为4,循环继续
  • 第4轮:执行循环体输出4 ,判断条件时取当前n=4比较(4<=3不成立),随后n自增为5,循环终止

最终输出结果为1 2 3 4 。


第二段代码(使用++n)执行逻辑

#include <iostream>
#include <string>
using namespace std;
int main()
{
   int n = 1;
   do
   cout << n << " " ;
   while (++n <= 3);
}

前置自增++n的规则是:先对变量执行+1操作,再返回自增后的值参与表达式判断。逐轮执行流程如下:

  • 初始值n=1
  • 第1轮:先执行循环体输出1 ,判断条件时先把n自增为2,用2比较(2<=3成立),循环继续
  • 第2轮:执行循环体输出2 ,判断条件时先把n自增为3,用3比较(3<=3成立),循环继续
  • 第3轮:执行循环体输出3 ,判断条件时先把n自增为4,用4比较(4<=3不成立),循环终止

最终输出结果为1 2 3 。


内容的提问来源于stack exchange,提问作者Ahmed Talib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 12:24:05