In
From Lazarus wiki
Revision as of 02:06, 28 January 2022 by Kai Burghardt (talk | contribs) (mention use in uses-clause)
│
Deutsch (de) │
English (en) │
suomi (fi) │
The reserved word in
tests whether a value is in a set. It returns the boolean value
true
if the value belongs to the set and
false
if the value
does not belong to the set. The word in
is also used with the reserved word for
in for-in loop. The word in
is also usable in uses
‑clauses.
example
program projectin;
uses SysUtils,TypInfo;
type
Berry = (Blueberry,FlyHoneysuckle, Lingonberry, Raspberry,Snowberry,Strawberry);
Berries = set of berry;
var
basket: Berries;
someberry:berry;
str:string;
i:integer;
begin
basket := [];
writeLn('Choose a berry from the following berries into your basket');
repeat
i:=1;
for someberry in berry do
begin
Str := GetEnumName(TypeInfo(Berry),ord(someberry));
writeln(i,' : ',Str);
inc(i);
end;
writeln('0 : exit ');
writeln;
readln (i);
if i>0 then
begin
someberry :=Berry(i-1);
Include(basket,someberry);
end;
until i=0;
if (FlyHoneysuckle in basket) or (Snowberry in basket) then
begin
writeln ('You have poisonous berries in your basket');
if FlyHoneysuckle in basket then
writeln ('Your basket has a poisonous Fly honeysuckle!') ;
if Snowberry in basket then
writeln ('Your basket has a poisonous Snowberry!');
end;
writeln('So you had these berries in your basket:');
for someberry in basket do
begin
Str := GetEnumName(TypeInfo(Berry),ord(someberry));
writeln(Str);
end;
readln ;
end.