E.g。我有这个数组:
type
OptionRange = array[ 1..9 ] of integer;
如何检查数组[x]是否存在?
实际上,我想用数组索引来限制用户输入。我做错了吗?有更好的实用解决方案吗?
答案 0 :(得分:3)
在Free Pascal和Borland方言中(也可能在其他地方),您可以在数组类型或数组类型的变量上使用Low
和High
函数。我发现这最常用于确定for
循环的界限:
var
range: OptionRange;
i: Integer;
begin
for i := Low(range) to High(range) do begin
range[i] := GetOptionRangeElement(i);
end;
end;
您还可以定义子范围类型,然后使用它来定义您在数组上使用的数组和索引变量:
type
OptionRangeIndex = 1..9;
OptionRange = array[OptionRangeIndex] of Integer;
var
range: OptionRange;
i: OptionRangeIndex;
然后,当您启用了范围检查(假设您的编译器提供了这样的功能)并且您使用的值超出OptionRange
索引的范围时,您将收到一个运行时错误,您可以捕获并按你想要的方式处理。
我不确定选项范围是什么,或者为什么会使用九个整数的数组来表示一个,但我认为这是一个名称选择问题。