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

为何我的For循环仅输出最后计算结果?如何修复?

问题修复说明

问题根源

Pascal 的 for 循环默认仅将 do 后紧跟的单条语句视为循环体。你的代码中,只有 x:=n*i; 处于循环范围内,writeln(x); 是在循环全部执行完毕后才运行的,因此只会打印最后一次计算的结果。

修复后的代码

begin
     writeln('FOR');
     for i:=1 to 10 do
     begin
         x:=n*i;
         writeln(x);
     end;
     readln();
end;

核心改动是用 begin...end 将 x:=n*i; 和 writeln(x); 包裹起来,让这两行代码都成为循环体的一部分,这样每次循环计算后都会立即打印结果。

关于你提到的测试现象解释

  • 移除 x:=n*i; 后打印10次0:此时你应该已经将 writeln(x) 放入了循环体(可能调整了代码结构),而 Pascal 中未初始化的数值变量默认值为0,因此每次循环都会输出0。
  • 将 writeln 中的 x 替换为 n 后打印10次n:同样是因为 writeln 处于循环体内,每次循环都会输出 n 的固定值,因此重复打印10次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:52:06