Sun Microsystems
Termékek
 
Támogatás
 
 

Előző Előző     Tartalom     Tárgymutató     Következő Következő

Ebben a példában a Teszt függvényben definiált A értéket a program átadja paraméterként az ErtekModositasa függvénynek. A program ezután módosítja az értéket 20-ra, és hozzárendeli AzErtek változóhoz, amely megmarad akkor is, amikor a függvény kilép.

Egy paraméter átadható értékként is, ha nem akarjuk, hogy a paraméternek módosuljon az értéke. Ha egy paramétert értékként akarunk átadni, győződjünk meg róla, hogy a ByVal kulcsszót beírjuk a paraméter elé a függvényfejlécben.

Az előző példában, ha kicseréljük az ErtekModositasa függvényt a

Sub ErtekModositasa(ByVal AzErtek As Integer)

   AzErtek = 20

End Sub

függvényre, akkor az A változó értéke nem fog módosulni. Az ErtekModositasa függvény meghívása után az A változó megtartja a 10 értékét.


Megjegyzés - A StarOffice Basic programban a paraméterek átadása eljárásoknak és függvényeknek megegyezik a VBA-ban használt módszernek. Alapértelmezésként a paraméterek hivatkozás szerint kerülnek átadásra. Ha paramétereket érték szerint akarunk átadni, használjuk a ByVal kulcsszót. A VBA-ban használhatjuk a ByRef kulcsszót is, ha a paramétert hivatkozás szerint akarjuk átadni. A StarOffice Basic nem támogatja ezt a kulcsszót, mert a hivatkozás szerinti átadás az alapértelmezett módszer a StarOffice Basic programban.


Opcionális paraméterek

A függvények és eljárások csak akkor hívhatók meg, ha minden szükséges paraméter átadásra kerül a hívás során.

A StarOffice Basic programban definiálhatók opcionális paraméterek is, amelyek ha nincsenek megadva a meghíváskor, akkor a StarOffice Basic üres paramétert ad át helyettük. A

Sub Teszt(A As Integer, Optional B As Integer)



End Sub

példában az A paramétert kötelező megadni, viszont a B paraméter opcionális.

Az IsMissing függvénnyel ellenőrizhető, hogy egy paraméter megvan-e adva vagy nincs.

Sub Teszt(A As Integer, Optional B As Integer)

   Dim B_Local As Integer



   ' Ellenőrzi, hogy a B paraméter meg van-e adva.         

   If Not IsMissing (B) Then   

      B_Local = B      ' A B paraméter meg van adva.

   Else

      B_Local = 0      ' A B paraméter nincs megadva -> alapértelmezett érték: 0

   End If



   ' ... A tényleges függvény kezdete



End Sub

A példaprogram először ellenőrzi, hogy a B paraméter meg van-e adva, és ha igen, az értékét hozzárendeli a B_Local változóhoz. Ha egy adott paraméter nincs megadva, akkor egy alapértelmezett értéket (ebben a példában a 0-t) kap a B_ Local változó az átadott paraméter helyett.


Megjegyzés - A VBA-ban rendelkezésre álló ParamArray kulcsszó nem támogatott a StarOffice Basic programban.


Rekurzió

Most már használható rekurzió a StarOffice Basic programban. A rekurzív eljárás vagy függvény saját magát hívja meg egészen addig, amíg egy alapfeltétel igazzá nem válik. Ha a függvényt ezzel az alapfeltétellel hívják meg, egy eredményt ad vissza.

A következő példa bemutat egy rekurzív függvényt, amely kiszámolja a 42, -42 és a 3.14 faktoriálisát:

Sub Main

    Msgbox CalculateFactorial(  42 )    ' Az 1,40500611775288E+51 értéket jeleníti meg

    Msgbox CalculateFactorial( -42 )    ' Az "Érvénytelen szám faktoriálisszámításhoz!" üzenetet jeleníti meg.

    Msgbox CalculateFactorial( 3,14 )    ' Az "Érvénytelen szám faktoriálisszámításhoz!" üzenetet jeleníti meg.

End Sub



Function CalculateFactorial( Number )

    If Number < 0 Or Number <> Int( Number ) Then

        CalculateFactorial = "Érvénytelen szám faktoriálisszámításhoz!"

    ElseIf Number = 0 Then

        CalculateFactorial = 1

    Else

        ' Ez a rekurzív függvényhívás:

        CalculateFactorial = Number * CalculateFactorial( Number - 1 )

    Endif

End Function 

A példaprogram visszaadja 42 faktoriálisát azzal, hogy rekurzívan meghívja a CalculateFactorial függvényt addig, amíg az el nem éri a 0! = 1 alapfeltételt.


Megjegyzés - A használható rekurzív szintek száma a szoftverplatformtól függ. Windowsban a rekurzivitás szintje 5800. Solarisban és Linuxban ez a veremmérettől függ.


Hibakezelés

A hibák megfelelő kezelése az egyik legidőigényesebb feladat a programozásban. A StarOffice Basic számos eszközt biztosít a hibakezelés leegyszerűsítésére.

Az On Error utasítás

Az On Error utasítás a hibakezelés alapja:

Sub Teszt

   On Error Goto Hibakezelo



   ' ... feladat végrehajtása, amely közben hiba történhet



Exit Sub



Hibakezelo: 



   ' ... hibakezelő kód



End Sub

Előző Előző     Tartalom     Tárgymutató     Következő Következő