在pascal中“读取”枚举类型的任何更简单的方法?

时间:2013-04-08 20:04:32

标签: enums pascal

用户输入一个整数,该整数对应于定义的枚举类型的值。我需要将该值赋给变量 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.

我是否过度复杂化了这项任务?是否可以写一个更简单的算法?

1 个答案:

答案 0 :(得分:4)

您应该能够将整数转换为枚举类型,例如:

t := test(n);

如果您想采用其他方式,请使用ord

n := ord(t);

这应该让你以数字方式移动到列表中的任何项目。您可以使用以下方法检查边界:

Ord(Low(test)))

Ord(High(test))

.. test是你的类型。