用户输入一个整数,该整数对应于定义的枚举类型的值。我需要将该值赋给变量 t 。这就是我的想法:
type test = (red,green,blue,fish);
var t:test;
n,i:integer;
begin
readln(n);
t:=red;
for i:=1 to n do
t:=succ(t);
end.
我是否过度复杂化了这项任务?是否可以写一个更简单的算法?
答案 0 :(得分:4)
您应该能够将整数转换为枚举类型,例如:
t := test(n);
如果您想采用其他方式,请使用ord
:
n := ord(t);
这应该让你以数字方式移动到列表中的任何项目。您可以使用以下方法检查边界:
Ord(Low(test)))
和
Ord(High(test))
.. test
是你的类型。