Case ... of ... else
Słowo case jest nietypowym warunkiem, który zaoszczędzi Tobie czas, gdy konstruujesz kod, działający w zależności od wartości jakiejś zmiennej. Gdy zmienna ma wartość pierwszą, wykonuje pierwszą sekwencję, gdy wartość drugą -drugą sekwencję, itd. Jest możliwe również ustalenie wykonywania instrukcji, w przypadku wszelkich innych wartości za pomocą else. Warunek zbiorowy Case, kończymy słowem end;
Słowo kluczowe Case – jako parametr zmiennej może przyjmować typy char oraz całkowite liczbowe, np. Integer. Pierwszy przykład jest bardzo teoretyczny...
case (b) of {b zadeklarowane jako Byte}
1: Instrukcja1;
2: Instrukcja2;
else {W przeciwnym wypadku}
Instrukcja3;
end;
W drugim przykładzie pokazano zastosowanie Case przy budowie menu gry MasterMind. Zmienna c jest typu char. Wczytany został do niej kod klawisza. Zawiera więc w sobie jeden znak z klawiatury.
{w przykładzie zastosowanie Case w menu gry MasterMind}
{Zamiast pisać}
if c = KEY_LEFT then
px := px - 1;
if c = KEY_ RIGHT then
px := px + 1;
if c = KEY_ UP then
py := py - 1;
{można uprościć kod...}
case (c) of {c zadeklarowane jako char}
KEY_LEFT: {KEY_LEFT to stała zdefiniowana przez programistę}
px := px - 1;
KEY_RIGHT: {KEY_RIGHT to stała...}
px := px + 1;
KEY_UP:
py := py - 1;
KEY_DOWN:
py := py + 1;
KEY_CHOOSE:
Choose;
KEY_NEW_GAME:
Init;
KEY_ESCAPE:
quit := TRUE;
else {W przeciwnym wypadku}
Exit; {Wyjście z procedury}
end;