Skip to content

API Basic Continue de

Codex edited this page Sep 10, 2026 · 1 revision

Continue For / Do / While

ClassicUO • Basic

Continue überspringt den restlichen Rumpf der nächsten umgebenden Schleife des angegebenen Typs. Continue For gilt für For und For Each, Continue Do für Do/Loop und Repeat/Until, Continue While für While/Wend.

Genaue Syntax

Continue For
Continue Do
Continue While

Parameter

  • kind — kind: For, Do oder While ist nach Continue erforderlich, ohne Klammern. Die passende Schleife muss die Anweisung in derselben Prozedur umgeben. Eine innere Schleife anderen Typs fängt den Sprung nicht ab.

Rückgabewert

Continue liefert keinen Wert und ist kein Ausdruck. Es bedeutet weder TRUE/FALSE noch einen Neustart der Prozedur. Die Funktion kann später RETURN ausführen; die Beispiele liefern Integer 10, 3 und 34.

Verhalten

  • For führt NEXT aus, berücksichtigt STEP und prüft den nächsten Wert gegen die Grenze; For Each liest das nächste Element. Nach dem letzten Element endet die Schleife. Initialisierung und Sammlungsausdruck werden nicht wiederholt.
  • Do prüft eine Anfangsbedingung am Anfang, eine Loop-Bedingung am Ende. Repeat/Until verwendet UNTIL. Bedingungsloses Do/Loop läuft bis Exit oder Stopp. While prüft WHILE erneut. Continue Do wählt kein While/Wend.
  • Die Vorbereitung bestimmt die Adresse der nächsten passenden Schleife. Fehlt sie, tritt SC020 vor Initialisierern auf, auch ohne Option Explicit. NEXT-Namen und Abschlüsse werden geprüft. Die alte FOR/NEXT-Form über eine IF-Grenze bleibt erhalten.
  • Beim Verlassen von TRY/CATCH werden überquerte FINALLY-Blöcke einmal von innen nach außen ausgeführt. Liegt die gesamte Schleife in TRY, läuft dessen FINALLY nicht bei jeder Iteration. RETURN oder ein Fehler in FINALLY ersetzt den ausstehenden Sprung.
  • Continue wartet nicht. Ändern Sie die Bedingung oder verwenden Sie beim Abfragen eine passende Wartefunktion, sonst droht eine Endlosschleife. Pause und Stopp bleiben aktiv. Verlassene native Enumeratoren werden freigegeben; Ausführungen bleiben unabhängig. Exit For/Do/While verlässt die Schleife.

Beispiele

1. Elemente überspringen

# values enthält -2, 4, 0, 6. item<=0 löst für -2 und 0 Continue For aus; total+=item entfällt für diese Werte. Die Form gilt auch in For Each. SumPositive und Main liefern Integer 10 aus 4+6.
Option Explicit On
Function SumPositive(values)
    Var total = 0
    For Each item In values
        If item <= 0 Then
            Continue For
        End If
        total += item
    Next
    Return total
End Function
Sub Main()
    Dim values[3]
    values[0] = -2
    values[1] = 4
    values[2] = 0
    values[3] = 6
    Return SumPositive(values)
End Sub

Erläuterung der Parameter und Ausführung:

values enthält -2, 4, 0, 6. item<=0 löst für -2 und 0 Continue For aus; total+=item entfällt für diese Werte. Die Form gilt auch in For Each. SumPositive und Main liefern Integer 10 aus 4+6.

2. Äußere Schleife nach Typ wählen

# AdvanceTo erhält limit=3, count beginnt mit 0. In While True steigt count und Continue Do springt zum äußeren Do. Die Bedingung wird erneut geprüft; count=3 beendet die Schleife und liefert Integer 3.
Option Explicit On
Function AdvanceTo(limit)
    Var count = 0
    Do While count < limit
        While True
            count += 1
            Continue Do
        Wend
    Loop
    Return count
End Function
Sub Main()
    Return AdvanceTo(3)
End Sub

Erläuterung der Parameter und Ausführung:

AdvanceTo erhält limit=3, count beginnt mit 0. In While True steigt count und Continue Do springt zum äußeren Do. Die Bedingung wird erneut geprüft; count=3 beendet die Schleife und liefert Integer 3.

3. Aufräumen beim Überspringen

# Process erhält limit=3 und skip=2. i durchläuft 1, 2, 3. Die zweite Iteration überspringt total+=i, Finally erhöht cleanup jedoch dreimal. total=4, cleanup=3; RETURN cleanup*10+total liefert Integer 34.
Option Explicit On
Function Process(limit, skip)
    Var total = 0
    Var cleanup = 0
    For Var i = 1 To limit
        Try
            If i = skip Then
                Continue For
            End If
            total += i
        Finally
            cleanup += 1
        End Try
    Next i
    Return cleanup * 10 + total
End Function
Sub Main()
    Return Process(3, 2)
End Sub

Erläuterung der Parameter und Ausführung:

Process erhält limit=3 und skip=2. i durchläuft 1, 2, 3. Die zweite Iteration überspringt total+=i, Finally erhöht cleanup jedoch dreimal. total=4, cleanup=3; RETURN cleanup*10+total liefert Integer 34.


en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic

Clone this wiki locally