如何在Pascal中获取枚举类型中的项数?
我应该在“***”中使用什么来获取输出中饮料枚举类型的元素数? 我使用了如何在Pascal中获取枚举类型中的项数?,pascal,lazarus,maxlength,Pascal,Lazarus,Maxlength,我应该在“***”中使用什么来获取输出中饮料枚举类型的元素数? 我使用了sizeof(),但它给出了类型的字节值。 我用的是lazarus,仅供参考。应该给你定义的饮料数量。应该给你定义的饮料数量。你可以使用ORD和高低功能: program Enumeration; uses crt; type beverage = (coffee, tea, milk, water, coke, limejuice); var drink:beverage; begin`enter c
sizeof()
,但它给出了类型的字节值。
我用的是lazarus,仅供参考。应该给你定义的饮料数量。应该给你定义的饮料数量。你可以使用ORD和高低功能:
program
Enumeration;
uses
crt;
type
beverage = (coffee, tea, milk, water, coke, limejuice);
var
drink:beverage;
begin`enter code here`
writeln('Which drink do you want?');
writeln('You have ', *** , ' choices');
readkey;
end.
代码:
ord(high(beverage)) - ord(low(beverage)) + 1
结果:
program
Enumeration;
uses
crt;
type
beverage = (coffee, tea, milk, water, coke, limejuice);
var
drink:beverage;
begin`enter code here`
writeln('Which drink do you want?');
writeln('You have ', ord(high(beverage))-ord(low(beverage))+1 , ' choices');
readkey;
end.
您可以使用ORD和高-低功能:
program
Enumeration;
uses
crt;
type
beverage = (coffee, tea, milk, water, coke, limejuice);
var
drink:beverage;
begin`enter code here`
writeln('Which drink do you want?');
writeln('You have ', *** , ' choices');
readkey;
end.
代码:
ord(high(beverage)) - ord(low(beverage)) + 1
结果:
program
Enumeration;
uses
crt;
type
beverage = (coffee, tea, milk, water, coke, limejuice);
var
drink:beverage;
begin`enter code here`
writeln('Which drink do you want?');
writeln('You have ', ord(high(beverage))-ord(low(beverage))+1 , ' choices');
readkey;
end.
添加一个警告可能很好,只有当值没有被强制“跳转”时,这才是正确的,例如,如果枚举有
milk=7
。添加一个警告可能很好,只有当值没有被强制“跳转”时,这才是正确的,例如,如果枚举有milk=7
。