3

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

我是否使任务过于复杂?是否可以编写一个更简单的算法?

4

1 回答 1

4

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

t := test(n);

如果您想另辟蹊径,请使用ord

n := ord(t);

这应该让您以数字方式移动到列表中的任何项目。您可以通过以下方式检查界限:

Ord(Low(test)))

Ord(High(test))

..test你的类型在哪里。

于 2013-04-08T20:14:25.677 回答