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). |