Podmíněný příkaz IF...THEN
Nejjednodušší tvar příkazu vypadá takto:
If podmínka Then prikaz1 [Else prikaz2]
Podmínkou je logický výraz, po jehož splnění se provede příkaz nebo příkazy uvedené za klíčovým slovem Then. Pokud podmínka splněna nebude, vykoná se příkaz za klíčovým slovem Else (Část Else je nepovinná, proto je uvedena v harnatých závorkách) – pokud ji nepoužijeme, podmíněný příkaz reaguje jen na splnění podmínky.
Pokud chceme, aby byly splněny dvě podmínky, můžeme použít logickou spojku And.
If A<=5 And A>=1 Then ... Else …
Rozšířená varianta příkazu If...Then:
If podmínka Then
Prikazy1
[ElseIf podminka2 then
Prikazy2
.
.
.
ElseIf podminkaN Then
PrikazyN
Else
PrikazyN+1]
Else If
V tomto případě lze vytvořit podmínku s několika variantami větvení kódu. Je možno využít libovolný počet příkazů pro každou variantu větvení. Příkaz je vždy ukončen klíčovým slovem End If.. Ukážeme to na jednoduchém příkladě, kdy rozhodujeme o to, zda je číslo kladné, záporné či rovno nule.
Ze cvičných důvodů jsem použil další prvek formuláře, a to tzv. Roletku – výběr ze seznamu – ComboBox (Items: Colection – zde jsem vypsal pod sebe několik celých čísel, které se budou nabízet při kliknutí na malý trojúhelník rozevírací nabídky (name: comVstup) a jako výstup využívám Message Box.
Podmíněný příkaz Select Case
Dalším z příkazů, jejichž činnost závisí na podmínce je příkaz Select Case:
Select Case výraz
Case seznam1
.
.
Case seznam2
.
.
.
.
[Case Else
.
.]
End Select
V případě, že hodnota výraz, vyhovuje v některém z případů, vykoná se blok příkazů následující za ním. Pokud nevyhovuje žádnému případu a bude v kódu část Case Else, provede se blok příkazů uvedený v této části. Rozdíly oproti If...Else:
- výraz se vyhodnotí a jeho hodnota je předána do těla příkazu ( u If...Then se vyhodnocuje pravdivost či nepravdivost)
- v seznamu podmínek nemohou být složité podmínky, například s logickými spojkami.
Jako příklad může sloužit již uvedené určování kladných či záporných čísel upravené pro příkaz SELECT CASE.
Příkaz If...Then používáme:
když máme pouze jednu nebo dvě možnosti – podmínka splněna, či nesplněna
potřebujeme vyhodnotit složitější podmínky
Příkaz Select Case používáme:
když máme více možností
když jsou jednotlivé případy rozlišeny jako hodnoty, jejich seznamy, rozsahy či jednoduché podmínky.
Příklad na podmíněný příkaz Select...Case
Ukážeme si program, který není zdaleka dokončený a dá se s ním ještě dále pracovat. Je to kakový náznak kalkulačky. Jsou na něm vidět možnosti práce s textem a vstupy, je tam i cyklus Select...Case. Berte ho jako drobnou inspiraci.
Vzhled aplikace – jeho vytvoření, úprava formuláře
Zdrojový kód aplikace
Aplikace funguje takto: Do textového okna zadáváme čísla podobně jako na kalkulačce. Roletkou si vyberem číselnou operaci (u nás +, -), stiskneme Další číslo, TextBox se vymaže a můžeme zadat další čílo. Pak můžeme počítat stiskem tlačítka Výpočet.
Ukázky kódu k jednotlivým prvkům formuláře. Nejdříve tlačítka s čísly:
Private Sub txt1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt1.Click
txtDisp.Text = txtDisp.Text + "1"
End Sub
Jistě dokážete popsat, co kód vykoná.
Nesmíme zapomenout deklarovat proměnné – přímo ve formuláři:
Public Class Form1
Dim A As Integer
Dim B As Integer
Dále tlačítko Další číslo (budu dále vynechávat část, kterou generuje editor VisualBasicu – Private Sub... atd.):
A = Val(txtDisp.Text)
txtDisp.Clear()
MsgBox("Zadej další číslo")
Samotný výpočet se vykoná při stisku tlačítka Výpočet: - zde využijeme roletky (příkaz Select...Case):
Select Case cmdOperace.Text
Case "+"
B = Val(txtDisp.Text)
txtDisp.Text = Val(A + B)
Case "-"
B = Val(txtDisp.Text)
txtDisp.Text = Val(A - B)
End Select
Zde je celá program: