用户输入一个整数,该整数对应于一个已定义的枚举类型的值。我需要将该值分配给变量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. 我是否过于复杂化这个任务了?是否有可能编写一个更简单的算法?
你可以将整数直接转换为枚举类型,例如:t := test(n); 如果你想要反过来做,那么使用 ord 函数: n := ord(t); 那样您就可以通过数字移动到列表中的任何项。您可以使用以下代码检查边界:Ord(Low(test))) 并且 Ord(High(test)) ..其中test是你的类型。
Ord(red) = 0
,并且使用通用符号Ord(Low(test)) = 0
。 - LU RD