Elágazások

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Book.png

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



Personal tools