Benutzer-Werkzeuge

Webseiten-Werkzeuge


k10:k10.5:k10.5.1:start

10.5.1 Return

Die Anweisung Return oder Return [ Ausdruck ] beendet als Kontroll-Element eine Prozedur oder eine Funktion.

10.5.1.1 Hinweise

  • Eine Prozedur können Sie nur mit Return beenden. Ein Rückgabewert (Ausdruck) darf nicht angeben werden.
  • Wenn Sie jedoch eine Funktion mit 'Return Ausdruck' beenden, dann wird Ausdruck als Funktionswert zurückgegeben. Beenden Sie eine Funktion ohne einen Ausdruck anzugeben, wird als Funktionswert der Default-Wert (→ Kapitel 7.0 Datentypen) für den festgelegten Funktionswert-Datentyp zurückgegeben.
  • Seit der Gambas-Version 3.1 wird Return auch zur Rückkehr von einer GoSub-Instruktion verwendet.

10.5.1.2 Beispiele

Die Beispiele sollen der Demonstration des Einsatzes des Kontroll-Elements Return oder Return [ Ausdruck ] in unterschiedlichen Anwendungsfällen dienen.

Beispiel 1

Das klassische Beispiel für eine Funktion wie y = f(x) = x² – 3, als eindeutige Abbildung, kennen Sie sicher noch aus der Schulzeit:

Public Function f(x AS Float) AS Float        
    RETURN (x * x) - 3    
End ' Function f(x)

mit dem Aufruf in einer anderen Prozedur:

Public Sub Calculate()
  Dim y as Float
 
  y = f(-5.66)
   …
End ' Calculate()

Beispiel 2

Die u.a. Funktion IsIntegerRange(..) gibt in Abhängigkeit vom Argument iPSumme entweder True oder False als Funktionswert zurück:

Private Function IsIntegerRange(iPSumme As Integer) As Boolean 
  If iPSumme > 2147483647 OR If iPSumme < 0 Then 
     btnReset.SetFocus 
     Return False 
  Else 
     Return True 
  Endif ' Partialsumme-Überlauf ? 
End ' IsIntegerRange(...)

Beispiel 3

Die Prozedur CheckInput(..) kann immer dann eingesetzt werden, wenn für eine Eingabe-Komponente nur Zeichen aus einem vorgegebenen Eingabe-Alphabet akzeptiert werden:

Public Sub txbInputPolynom1_KeyPress() 
  CheckInput("+-,.^0123456789x") 
End ' txbInputPolynom1_KeyPress() 
 
Public Sub CheckInput(sAllowed As String) 
  Select Case Key.Code 
    Case Key.Left, Key.Right, Key.BackSpace, Key.Delete, Key.End, Key.Home, Key.Enter, Key.Return 
      Return
    Default 
      If Key.Text And If InStr(sAllowed, Key.Text) Then 
         Return 
      Endif 
  End Select 
  Stop Event 
End ' CheckInput(sAllowed As String)

Bei ausgewählten Tasten und Zeichen aus dem Eingabe-Alphabet wird die Prozedur CheckInput(..) abgebrochen! Über 'Stop Event' werden alle nicht zulässigen Zeichen und Tastendrücke ignoriert.

Beispiel 4

In dem folgenden Quelltextausschnitt wird die Prozedur abgebrochen, wenn ein Fehler beim Anlegen des Verzeichnisses mit dem angegebenen Pfad auftrat, weil die Existenz des Ordners offensichtlich zwingende Voraussetzung für den Programmablauf ist:

Public Sub MyProzedur()
…
  If Not Exist(sSVNPfad) Then 
     Try Mkdir sSVNPfad 
     If Error = True Then 
        Message.Error("Fehler beim Anlegen des Ordners" & sSVNPfad) 
        RETURN 
     Endif ' Error = True? 
  Endif ' Not Exist(SVNPfad?
…

Beispiel 5

Als Funktionswert wird eine OutputListe als String-Array zurückgegeben, nachdem in der als Argument übergebenen InputListe (String-Array) alle mehrfach auftretenden gleichen Elemente entfernt wurden:

Public Function RemoveMultiple(aInputList As String[]) As String[]
  Dim iCount As Integer
  Dim iIndex As Integer
  Dim sElement As String
  Dim aOutputList As String[]
 
  aOutputList = aInputList
  iIndex = 0
  While iIndex < aOutputList.Count
  iCount = 0
    sElement = aOutputList[iIndex]
    While aOutputList.Find(sElement) <> -1
      Inc iCount
      aOutputList.Remove(aOutputList.Find(sElement))
    Wend
    If iCount Mod 2 = 1 Then
       aOutputList.Add(sElement, iIndex)
       Inc iIndex
    Endif
  Wend
  Return aOutputList
End ' RemoveMultiple(...)

Beispiel 6

Dieses Beispiel demonstriert den Fall, dass in einer Funktion nach Return kein Rückgabewert angegeben wird, sondern automatisch der Default-Wert (→ 10.5.1.1 Hinweise) zurückgegeben wird:

Public Function ComputeGGT(x As Integer, y As Integer) As GGT 
' Für (0,0) ist der GGT nicht definiert → Null zurückgeben 
  If x = 0 And If y = 0 Then 
    Return ' Rückgabe Null als Default-Wert bei Objekten
  Endif 
' Sonst euklidischen Algorithmus ausführen 
  Return hGGT ' Mit hGGT als erzeugtes GGT-Objekt 
End ' ComputeGGT(..)

Sie hätten in der vierten Zeile auch 'Return Null' schreiben können – 'Return' würde aber in diesem Fall ausreichen.

Download

k10/k10.5/k10.5.1/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge