如何使用自定义步骤迭代范围?

问题描述 投票:0回答:2

如何使用自定义步骤迭代 Ada 中的范围?

For I in Integer'Range
loop
    -- do something every 10 steps
end loop;

我可以定义具有特定步骤的子类型吗?

loops ada
2个回答
0
投票

这是一种每 10 步运行一次操作的方法:

for I in Integer'Range loop
   -- do something every steps

   if (I mod 10 = 0) then
      -- do something every 10 steps
   end if;
end loop;

0
投票

通常会进行显式增量:

declare
   I : T := Start;
begin
   loop
      exit when I > Stop;

      -- do something every Step steps
      I := I + Step;
   end loop;
end;

有时您需要稍微不同的测试:

declare
   I : T := Start;
begin
   loop
      -- do something every Step steps

      exit when I > Stop - Step;

      I := I + Step;
   end loop;
end;

当最后一个增量溢出时。或者你可以处理异常。

© www.soinside.com 2019 - 2024. All rights reserved.