Bya*_*gan 0 delphi for-loop position matrix cycle
我有一个关于如何在Delphi中填充矩阵的问题?在哪个方式和哪个行和列第一个econd和哪个数字后跟哪个数字在Delphi中的顺序是什么?你能帮忙澄清一下吗?详情如下:
我有5x5 Matrix,数字1到5,代码如下:
for i := 1 to 5 do
for j := 1 to 5 do
x[i, j] := i + j;
Run Code Online (Sandbox Code Playgroud)
x [2,2]和x [1,1]等位置会是什么?填充矩阵的顺序是什么?用哪种方法?什么行和列填充第一,第二,第三等?谢谢您的回答.
代码按其显示的顺序从上到下工作.如果它看起来有点好(我不建议你像这样编码,但只是显示逻辑更好):
for i := 1 to 5 do
begin
for j := 1 to 5 do
begin
x[i, j] := i + j;
end;
end;
Run Code Online (Sandbox Code Playgroud)
逻辑从i = 1开始,然后计算内部循环.所以基本上,你这样做:
x[1, 1] := 1 + 1;
x[1, 2] := 1 + 2;
...
x[1, 5] := 1 + 5;
x[2, 1] := 2 + 1;
..
x[5, 4] := 5 + 4;
x[5, 5] := 5 + 5;
Run Code Online (Sandbox Code Playgroud)
希望这有助于您了解在这种情况下for循环的工作原理.
这个问题与矩阵和Delphi本身无关.相反,它只是嵌套for循环.
我将告诉你如何为自己解决这个问题.创建这个简单的控制台应用
program NestedLoops;
procedure Main;
var
i, j: Integer;
begin
for i := 1 to 5 do
for j := 1 to 5 do
begin
Write('i=');
Write(i);
Write(' j=');
Write(j);
Writeln;
end;
end;
begin
Main;
end.
Run Code Online (Sandbox Code Playgroud)
你会看到这样的输出:
i=1 j=1
i=1 j=2
i=1 j=3
i=1 j=4
i=1 j=5
i=2 j=1
i=2 j=2
....
Run Code Online (Sandbox Code Playgroud)
没有运行代码也很容易预测这一点.想一想: