Programozás 1 (Pascal)
7
A CASE
elágazás
7.1 A CASE elágazás
Az if
mellett a pascal nyelv másik fajta elágazásra szolgáló utasítása a case.
Ez egy változó értékétől függően hajtja végre valamelyik parancsot. Formája:
case változó
of
érték1 : paracs1 ;
érték2 : paracs2 ;
érték3 : paracs3 ;
...
értékN : paracsN ;
end;
Ebben az
utasításban csak olyan típusú változót használhatunk, melynek a következő
és előző értéke egyértelműen meghatározható. Pl. használhatunk integer,
byte, char típusokat (mivel az egész számoknál - byte, integer
- egyértelműen meghatározható, hogy pl. a 8 után a 9 következik, a karaktereknél
- char - pedig szintén meghatározható, hogy a C karakter után a D következik). Nem
használhatunk azonban real, string típusokat (mert a real típusnál
az 1.2 után mi következik? 1.3? 1.21? 1.201? és hasonlóan a string típusnál az
'iskola' szó után milyen szó következik?)
A case utasítás
így működik: Ha a változó értéke az érték1-gyel egyenlő, akkor
a parancs1-et hajtja végre. Ha az érték2-vel egyenlő, akkor a parancs2-t
hajtja végre. Ha az érték3-mal egyenlő, akkor a parancs3-at
hajtja végre, stb.
A case parancsot
is az if-hez hasonlóan kiegészíthetjük egy olyan else résszel, amelyet akkor hajt végre a
program, ha a változó értéke a
felsorolt értékek egyikével sem egyenlő. Ekkor a case utasításunk
formája így bővül ki:
case változó
of
érték1 : paracs1 ;
érték2 : paracs2 ;
érték3 : paracs3 ;
...
értékN : paracsN ;
else
parancs ;
end;
Itt is ha bármelyik
parancs helyett több egymást követő parancsot szeretnénk a géppel végrehajtatni, használnunk
kell
a begin..end; kulcsszavakat.
A case parancsot
a gyakorlatban a következő példa szemlélteti:
program
Pelda22;
var c:char;
begin
writeln('Mit visz a kis hajo?');
write('Irj be egy kis betut: ');
readln(c);
case c of
'a': writeln('Almat!');
'b': writeln('Banant!);
'c': begin
writeln('Cernat,');
writeln('cicat!');
end;
'd': writeln('Datolyat!');
else
writeln('Erre nem tudok mit lepni.');
end;
end.
|