IF (podmienka) THEN {ak po splneni podmienky nasleduje viac prikazov, tak ich ohranicime do
BEGIN ,,, END}
BEGIN
príkaz1;
príkaz2;
..
END {pozor, tu sa nedava bodkociarka}
ELSE
BEGIN
príkaz1n;
príkaz2n
..
END;
IF (podmienka) THEN
BEGIN príkaz; .. END;
Ako môžu vyzerať podmienky?
No a podmienka ešte raz prakticky:
Program Cisla;
var a,b:integer;
begin
writeln('zadaj 2 cisla');
readln(a,b);
if a>b then writeln(a,' > ',b);
if a<b then writeln(a,' < ',b);
if a=b then writeln(a,' = ',b);
readln;
end.
Príkaz CASE je vlastne prepínač. Jednoducho vykoná ten príkaz, u ktorého je splnená rovnosť s hodnotou výrazu (hodnotou môže byť konštanta alebo interval hodnôt).
Ak nenájde zhodu, nevykoná nič (alebo vykoná príkaz za slovom ELSE, ak je uvedené).
case
premenna of hodnota1: prikaz1;
premenna of hodnota2: prikaz2;
---
else
prikazX;
end; {tento end sa vztahuje na case}
Ukážka na jednoduchom programe:
program znamkaSlovom;
var i:integer;
begin
writeln('zadaj znamku ako cislicu a ja ti ju napisem slovom');
readln(i);
case i of
1:writeln('jednotka');
2:writeln('dvojka');
3:writeln('trojka');
4:writeln('stvorka');
5:writeln('gula');
0,6..9:writeln('take znamky u nas nedavame')
{alebo pre 0,6,7,8,9: else writeln('take znamky u nas nedavame?');}
end;
readln;
end.
Ak by sa jednalo o rozhodovanie medzi znakmi, mohol by program vyzerať nasledovne:
program znakNaKlavesnici;
var znak:char;
begin
writeln('zadaj znak na klavesnici a ja ho zaradim do spravnej skupiny');
readln(znak);
case znak of
'A'..'Z', 'a'..'z': WriteLn('Pismeno'); {tu je hodnotou interval hodnôt - pozri P01, časť ordinálne typy}
'0'..'9': WriteLn('Cislica');
'+', '-', '*', '/': WriteLn('Operator');
else
WriteLn('toto bude nejaky specialny znak');
end;
readln;
end.
Príklady: