如何使用自定义步骤迭代 Ada 中的范围?
For I in Integer'Range
loop
-- do something every 10 steps
end loop;
我可以定义具有特定步骤的子类型吗?
这是一种每 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;
通常会进行显式增量:
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;
当最后一个增量溢出时。或者你可以处理异常。