我正在尝试编写一个 for 循环,它将给定的数字 n 与特定范围内的每个数字(例如 1-10)相乘,并打印每个步骤。我的代码如下所示:
begin
writeln('FOR');
for i:=1 to 10 do
x:=n*i;
writeln(x);
readln();
end;
Run Code Online (Sandbox Code Playgroud)
但是,只会打印最后的结果。如果 n=5,则为 50。我该如何解决这个问题?
亲切的问候,朱利叶斯
没有 x:=n*i; 行,它将打印 0 十次,正如它应该做的那样。另外,在 writeln 行中将 x 替换为 n 将打印 n 10 次。
您(1)缺少beginand endforfor循环,并且(2)因缩进不一致而感到困惑。
如果缩进一致,您的代码将是:
begin
writeln('FOR');
for i:=1 to 10 do
x:=n*i;
writeln(x);
readln();
end;
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,如果没有beginand endfor 循环,只有紧邻的下一行代码才是实际的循环体。包含beginandend块以在循环体中指定多行代码:
begin
writeln('FOR');
for i:=1 to 10 do
begin
x:=n*i;
writeln(x);
end;
readln();
end;
Run Code Online (Sandbox Code Playgroud)