Elágazások

If ... then parancs

Gyakran előfordul, hogy programunkban valamilyen feltételtől függően szeretnénk parancsot végrehajtani.

 

If feltételek Then

[utasítások]

[else]

[utasítások]

End If

 

Például akkor szeretnénk végrehajtani valamilyen parancsot, ha az i változó értéke nagyobb mint 5. Erre a következő parancs szolgál:

A mi példánkban ez így nézne ki:

if i>5 then parancs;

A feltételben bármilyen két kifejezést összehasonlíthatunk (pl. az i+1-et a j+5-tel). A kifejezések összehasonlítására használhatjuk a <, >, =, <=, >=, <> (nem egyenlő) jeleket, melyek igaz/hamis (true/false) logikai értékeket adnak vissza. Ha ez a logikai érték igaz (true), akkor a parancs végrehajtódik.

A logikai értékeket összekapcsolhatjuk az AND (és), OR (vagy), NOT (nem), XOR (kizáró vagy) műveletekkel. Így egyszerre több feltételt is vizsgálhatunk. Ilyenkor a feltételeket, amelyeket összekapcsoljuk, zárójelbe tesszük. Pl. azt szeretnénk, ha a parancsunk csak akkor hajtódna végre, ha az i változó értéke nagyobb mint 5 és egyidejűleg a k változó értéke egyenlő 7-tel:

if (i>5) and (k=7) then parancs;


A feltétel else ága

A programozás során sokszor előfordul, hogy akkor is végre akarunk hajtani valamilyen utasítást, ha a feltétel nem igaz. Ekkor az if ... then parancsunk kibővül egy else résszel:

if feltétel then parancs1
else parancs2;

Ha a feltétel igaz, akkor a parancs1 végrehajtódik, egyébként a parancs2 hajtódik végre. Fontos megjegyeznünk, hogy ha az if feltételvizsgálatnak van else ága, akkor a parancs1 után nem rakunk pontosvesszőt. Természetesen itt is mindkét parancs helyett tehetünk több utasítást is. Ilyenkor minden esetben a begin ... end-et használjuk:

Private Sub elág()
        
Dim As Integer = 0
        
= CInt(InputBox("Írjon be egy számot!", , , , ))
        
If a > 15 Then
            MsgBox
("A szám nagyobb mint 15")
        
Else
            MsgBox
("A szám kisebb vagy egyenlő mint 15!")
        
End If
    End Sub

A Case szerkezet szintaktikája

Select Case változó

Case változóérték1

[utasítások]

Case változóérték2

[utasítások]

End Select

Az egyes Case ágakban nemcsak konkrét értékeket, hanem intervallumokat is megadhatunk.

Pl.: 1 to 5

Vizsgálhatjuk azt is, hogy bizonyos feltételeknek eleget tesz-e a vizsgált változó. Ilyenkor az Is kulcsszót használjuk.

Pl.: Is>100

Vesszővel elválasztva több értéket és formulát is megadhatunk

Feladat: Készítsünk programot, amely bekér három pozitív egész számot, és kiírja őket nagyság szerint növekvő sorrendben!

Megoldás: A programban a három számnak 3 változót fogunk használni (a, b, c). Ezeket cserélgetéssel sorba fogjuk rakni úgy, hogy az a változóban legyen a legkisebb szám, a b-ben a középső és a c-ben a legnagyobb szám. A cserékhez egy x segédváltozót használunk.