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.