Bez vetvenia by program pravdepodobne nebol veľmi užitočný. Forma úplnej podmienky znie: Ak je podmienka splnená, vykonaj príkazy, ináč vykonaj iné príkazy. Naopak, neúplná pri nesplnení podmienky iba pokračuje ďalej. Vysvetlíme si to na príkladoch.
Používame kľúčové slová if a then. Forma je nasledovná:
if podmienka then príkaz;
Ak je príkazov viac, použijeme slová begin a end (za toto end dáme bodkočiarku).
if podmienka then begin nejaké; príkazy; end;
Ako podmienku používame logické výrazy. Príkaz sa vykoná, ak sa daný logický výraz rovná true. Nasledujúci program vypíše číslo zadané z klávesnice, len ak je menšie ako 10.
program podm;
var
c: integer;
begin
writeln('zadajte cislo');
readln(c);
if c < 10 then
writeln('cislo ', c, ' je mensie ako 10');
end.
Tento typ podmieneného príkazu má tvar:
if podmienka then príkaz1 else príkaz2;
Ak bude logický výraz zadaný ako podmienka pravdivý, vykoná sa príkaz1, inak príkaz2. Pri použití viacerých príkazov ich rovnako uzavrieme kľúčovými slovami begin a end.
if podmienka then begin príkaz1; príkaz2; end else begin príkaz3; príkaz4; end;
Teraz si ukážeme skutočný zdrojový kód na príklade. Po zadaní čísla z klávesnice sa nám zobrazí text informujúci, či je dané číslo párne. Okrem podmienky použijeme aj operátor mod - zvyšok po delení.
program parne;
var
c: integer;
begin
writeln('zadajte cislo');
readln(c);
if c mod 2 = 0 then // ak je parne
writeln('cislo ', c, ' je parne')
else // inak
writeln('cislo ', c, ' je neparne');
end.
Umožňuje nám zjednodušiť zdrojový kód pri väčšom množstve podmienok a výsledných možností. Ak má výraz určitú hodnotu, vykoná sa určený príkaz. Hodnota však musí byť vždy ordinálna (napr. celé číslo, znak). Takýto je tvar:
case premenná of hodnota1: príkaz1; hodnota2: príkaz2; hodnota3: príkaz3; ... else príkaz; end;
V prípade viacerých príkazov pre jednu hodnotu použijeme známe begin a end.
case premenná of hodnota1: begin príkazy1 end; ... else begin príkazy2 end; end;
V praxi to vyzerá asi nasledovne:
program podmn;
var
cislo: integer;
begin
writeln('zadajte cislo');
readln(cislo);
case cislo of
7: writeln('to je stastne cislo');
13: writeln('vraj nestastne');
else writeln('ine cislo');
end;
end.
To však nie je všetko. Miesto jednej hodnoty môžeme určiť i viacero naraz, či dokonca celý číselný rozsah.
program podmn2;
var
cislo: integer;
begin
writeln('zadajte cislo');
readln(cislo);
case cislo of
3,7: begin
writeln('stastne cislo');
writeln('OK');
end;
10..99: writeln('dvojciferne cislo');
end;
end.