Szelekció
Szintaxis
If_statement = if Expression1 then
{ Statement }
{ elsif Expression2 then
{ Statement } }
[ else
{ Statement }
end ]
Expression1 = Expression
Expression2 = Expression
Jelentés
A Virt-ben az elágazás kifejezéseinek értéke standard Integer kell, hogy legyen. Ha az Expression1 nem nulla,
akkor a következõ then után folytatódik a végrehajtás, ha nulla, akkor az elsif-et értékeli ki.
Ha a Expression2 nem nulla akkor a következõ then-nel folytatja, egyébként a következõ elsif-el.
Ha mindegyik kifejezés nulla, akkor az else ág hajtódik végre, ha nincs ilyen, akkor semmi sem.
Példák
if X < 3 then
A := 1
elsif X < 0 then
A := 2
elsif X = 0 then
A := 3
else
A := 4
end
Iteráció: Repeat ciklus
Szintaxis
Repeat_statement =
repeat
{ Statement }
until Expression
Jelentés
A kifejezés eredménye Integer kell legyen. A repeat és until közötti utasítások addig
hajtódnak végre amíg a kifejezés értéke nulla nem lesz.
Példa
K := 10560
J := 11
repeat
K := K / J
writeln( K )
until K = 0
960
87
7
0
Iteráció : While ciklus
Szintaxis
While_statement = while Expression do { Statement } end
Jelentés
A While ciklusoknál a kifejezések értéke szintén Integer kell, hogy legyen. Elõször a kifejezés kerül kiértékelésre.
Mindaddig, amíg a kifejezés értéke nem nulla, a ciklusmagban szereplõ utasítás végrehajtásra kerül. Amint a kifejezés értéke
nulla lesz, az utasítás többet nem lesz végrehajtva.
Példa
L := [ 1, [ 2, [ 3, * ] ] ]
P == L
while not Null( P ) do
writeln( P[ 1 ] )
P == P[ 2 ]
end
1
2
3
Iteráció : For..to..do..
Szintaxis
For_statement =
for Counter ":=" Expression1 to Expression2 do
{ Statement }
end
Expression1 = Expression
Expression2 = Expression
Counter = Variable
Jelentés
Temp1 := Expression1
Temp2 := Expression2
if Temp1 <= Temp2 then
Counter := Temp1
Body
while Name <> Temp2 do
Counter := Counter + 1
Body
end
end
Példák
A := array( N )
for I:=1 to N do
A[ I ] := Random( 1000 )
end
function F( N )
if N <= 1 then
Z := 1
else
Z := N * F( N - 1 )
end
return Z
for I:=1 to 12 do
writeln( F( I ) )
end
return
Vezérlésátadó utasítások
A goto utasítással a kódban az egyes címkékhez (label) ugorhatunk.
Szintaxis
Goto_statement = goto Label_ID
Label_statement = label Label_ID
Label_ID = Identifier
Példa
A := [ [ 10, *, 'abc' ], [ 23.9, 11 ], [ 567, 21, *, *, 'dc' ] ]
for I:=1 to Card( A ) do
for J:=1 to Card( A[I] ) do
if Null( A[I,J] ) then
goto Found
end
end
end
label Found
writeln( I )
writeln( J )
Eredmény
1
2