Ada 如何在多维数组中使用for循环?
**(初学者问题)!我在数据类型(Float_类型)中使用了多维数组,我想知道如何循环使用它们。我试着使用“Put(A(I,I))”但它不正确。我的代码:**Ada 如何在多维数组中使用for循环?,ada,Ada,**(初学者问题)!我在数据类型(Float_类型)中使用了多维数组,我想知道如何循环使用它们。我试着使用“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_Tex
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。一维数组,如
字符串,其D=1;二维数组,如Float_Type
,D=2;等等数组的维度编号为1。。D、 1表示给定的第一个范围(对于您的案例为0..4),2到第二个范围(对于您的案例为1..3),依此类推。数组第N维的范围可以通过范围(N)
获得(对于1..D中的N)。对于一维数组,'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;
两个嵌套的FOR循环,I在Float_Type'Range(1)中,J在Float_Type'Range(2)中,访问A(I,J)将是传统的。