Rozhodovací příkaz IF

Rozhodovací příkaz If je nejběžnější větvení určené k provedení příkazu nebo bloku příkazů za splnění určité podmínky.

Jednořádková podmínka If

Syntaxe příkazu

If podmínka Then příkaz1 [Else příkaz2]

Pokud je podmínka splněná, tedy nabývá hodnoty True, pak se provede příkaz1. Není-li splněna, tedy nabývá hodnoty False, přeskočí k nepovinnému prvku Else a provede příkaz2.
Pokud potřebujeme vložit pouze neúplné větvení pak nepoužijeme volitelný příkaz Else.

př. Vytvoř podmínku pro zjištění zda je číslo kladné.
Varianta s neúplným větvením. Pokud je číslo kladné pak program vypíše hlášení na obrazovku, při nesplnění podmínky, program nic neprovede.

If A>0 Then MsgBox “Číslo je kladné“

Varianta s úplným větvením. Program vypíše na obrazovku příslušnou zprávu pokud je číslo kladné i pokud číslo kladné není.

If A>0 Then MsgBox “Číslo je kladné“ Else MsgBox “Číslo není kladné“

Bloková podmínka If

Syntaxe příkazu

If podmínka Then                             
[příkazy1]
[ElseIf podmínka Then
[příkazy2]]
[Else
[příkazy_n]]    
End If

Je-li podmínka splněna, provedou se příkazy1 a řízení se předá příkazu na řádku následujícím za příkazem End If. Pokud podmínka splněna není, testují se postupně další podmínky uvedené za klíčovými slovy ElseIf. Pokud se některá z nich vyhodnotí na True, provede se odpovídající blok příkazů. Tím provedení příkazu If končí, tj. zastaví se u první splněné podmínky. Pokud by tedy někde dále byl ještě další blok příkazů, jehož podmínka by také byla splněna, tento blok příkazů se neprovede.

Bloková podmínka If je složitější, víceřádková a dovoluje větvit program do více bloků. U této podmínky je vždy nutné použít End If. ElseIf i Else není povinné. Za ElseIf může být dále specifikována podmínka, naopak Else určuje, co bude vykonáno, jestliže nebude splněna podmínka If ani ostatní ElseIf.

Před příkazem End If však může být poslední blok příkazů uveden klíčovým slovem Else. Pokud je tento blok uveden, provede se vždy v případě, že nebyla splněna žádná z předchozích podmínek.


Př. Vytvoř podmínku pro zjištění zda je číslo kladné, záporné, nebo nula.

If A >0 Then
   MsgBox “Číslo je kladné.“
ElseIf A < 0 Then
  MsgBox “Číslo je záporné.“
Else 
 MsgBox “Číslo má hodnotu nula.“
End If