Elágazások
Az elágazási utasításokkal egy kódrészlet végrehajtását egy adott feltételtől tehetjük függővé.
If...Then...Else
A legegyszerűbb elágazási utasítás az If utasítás, ahogy az a következő példában is látható:
If A > 3 Then
B = 2
End If
A B = 2 értékadás csak akkor történik meg, ha az A változó értéke nagyobb háromnál. Az If utasítás egyik változata az If/Else utasítás:
If A > 3 Then
B = 2
Else
B = 0
End If
Ebben a példában B értéke akkor lesz 2, ha A értéke nagyobb 3-nál, egyébként B értéke 0 lesz.
Létrehozhatunk bonyolultabb feltételeket is az If utasítások egymásba ágyazásával:
If A = 0 Then
B = 0
ElseIf A < 3 Then
B = 1
Else
B = 2
End If
Ha A értéke 0, akkor B értéke 0 lesz. Ha A értéke kisebb háromnál (de nem egyenlő 0-val), akkor B értéke 1 lesz. Minden egyéb helyzetben (azaz, ha A nagyobb 3-nál vagy egyenlő azzal), B értéke 2 lesz.
Select...Case
A Select...Case utasítás az egymásba ágyazott If utasítások alternatívája, és akkor érdemes használni, ha egy változó értékét több feltétellel kell ellenőrizni:
Select Case Nap
Case 1:
NapNeve = "Vasárnap"
Case 2:
NapNeve = "Hétfő"
Case 3:
NapNeve = "Kedd"
Case 4:
NapNeve = "Szerda"
Case 5:
NapNeve = "Csütörtök"
Case 6:
NapNeve = "Péntek"
Case 7:
NapNeve = "Szombat"
End Select
Ebben a példában a hét napját egy szám jelöli, így a NapNeve változó értéke Vasárnap lesz, ha a változó 1, Hétfő, ha 2 stb.
A Select parancs nem csak az 1:1 értékadásoknál használható – a Case feltételben megadhatunk összehasonlító operátorokat vagy kifejezéslistákat is. A következő példa bemutatja a legfontosabb változatokat:
Select Case Valtozo
Case 1 To 5
' ... A Valtozo értéke 1 és 5 között lehet (beleértve az 1 és 5 értékeket is).
Case > 100
' ... A Valtozo nagyobb, mint 100.
Case 6, 7, 8
' ... A Valtozo értéke 6, 7 vagy 8.
Case 6, 7, 8, > 15, < 0
' ... A Valtozo értéke 6, 7, 8, nagyobb, mint 15 vagy kisebb, mint 0.
Case Else
' ... Minden más eset
End Select
Nézzünk meg egy félrevezető (bonyolult) példát, ami egy gyakran elkövetett hibát mutat be:
Select Case Valtozo
Case Valtozo = 8
' ... A Valtozo értéke 0.
Case Else
' ... Minden más eset
End Select
A (Valtozo = 8) kifejezés TRUE (Igaz) lesz, ha a Valtozo értéke 8, különben FALSE (Hamis). A TRUE értéke -1, a FALSE értéke 0. A Select Case utasítás kiértékeli a kifejezést, amely TRUE vagy FALSE lesz, majd ezt az értéket hasonlítja össze a Valtozo értékével. Ha a Valtozo értéke 0, akkor a feltétel teljesül. Ha megértettünk az előbbi példát, akkor azt is érteni fogjuk, hogy ez a példaprogram miért nem azt csinálja, amit ránézésre várnánk tőle:
Select Case Valtozo
Case Valtozo > 8 And Valtozo < 11
' ... A Valtozo értéke 0.
Case Else
' ... Minden más eset
End Select
Content on this page is licensed under the Public Documentation License (PDL). |