**(初学者问题)!我在我的数据类型 (Float_Type) 中使用了多维数组,我想知道如何遍历它们。我尝试使用“Put(A(I, I))”,但它不正确。我的代码:**
with Ada.Float_Text_IO; use Ada.Float_Text_IO;
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure Test is
type Float_Type is
array (0 .. 4,1 ..3) of Float; --Total float numbers: 15
A: Float_Type;
begin
Put(" Write in your float nums: ");
for I in Float_Type'Range loop
Get(A(I, I)); -- Not correct
end loop; Skip_Line;
Put(" Your float nums: ");
for I in Float_Type'Range loop
Put(A(I, I)); --Not correct
end loop;
end Test;
最佳答案
所有数组都有一个维数 D。一个一维数组,例如 String
,有 D = 1;一个二维数组,例如 Float_Type
,有 D = 2;等等。数组的维度编号为 1 .. D,其中 1 指的是给定的第一个范围(对于您的情况为 0 .. 4),2 到第二个范围(对于您的情况为 1 ..3),依此类推。数组第 N 维的范围可以用 'range (N)
获得(for N in 1 .. D)。对于一维数组,'range
形式可以用作 'range (1)
的简写形式。
因此,正如 Drummond 所说,您需要两个嵌套循环:
for I in A'range (1) loop
for J in A'range (2) loop
Get (Item => A (I, J) );
end loop;
end loop;
关于ada - 如何在多维数组中使用for循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64126968/