Inhaltsverzeichnis

10.3.5 BREAK und CONTINUE

Break und Continue sind besondere Anweisungen innerhalb von Loop-Kontroll-Strukturen.

10.3.5.1 Beispiel 1

Eine Datei wird zum Lesen geöffnet. Dann wird der Inhalt der Datei zeilenweise ausgelesen und jede Zeile – unter bestimmten Voraussetzungen – in einem Array gespeichert:

hFile = OPEN sFilePath For Input
 
WHILE NOT Eof(hFile)          ' Solange noch nicht das Datei-Ende erreicht ist ...
  LINE INPUT #hFile, sLine    ' ... wird eine Zeile aus der Datei ausgelesen 
  sLine = Trim(sLine)         ' ... werden Leerzeichen am Ende und am Anfang der Zeile entfernt 
  IF NOT sLine THEN CONTINUE  ' ... wird eine leere Zeile übergangen → weiter mit neuem Schleifen-Durchlauf
  IF InStr("#;'", Left$(sLine)) THEN CONTINUE ' ... wird ein Kommentar übergangen → weiter ...
   ...
  aFileArray.Add(sLine)
WEND ' NOT Eof(hFile) 
CLOSE #hFile

10.3.5.2 Beispiel 2

Das Beispiel 2 greift einen Fall auf, in dem zwei verschachtelte For-Kontroll-Strukturen bei der Erfüllung einer bestimmten Bedingung verlassen werden sollen:

Dim iN, iI As Integer 
Dim bBreak As Boolean = False 
 
For iN = 0 To aArray.Max 
  For iI = 0 To Array[iN].Max 
    If iX = aArray[iN][iI] Then 
      bBreak = True 
      Break 
    Endif 
  Next 
  If bBreak Then Break 
Next

10.3.5.3 Beispiel 3

Im dritten Beispiel werden aus einem Array nur die Zahlen in einem anderen Array gespeichert, die ganzzahlige Kubikwurzeln sind:

Private Function CubicNumbers(aArray As Integer[]) As Integer[] 
  Dim iNumber As Integer 
  Dim aResult As New Integer[] 
 
  For Each iNumber In aArray 
    If Frac(Cbr(iNumber)) <> 0 Then CONTINUE ' Zahlen überspringen, deren Kubikwurzel keine Ganzzahl ist 
    aResult.Add(iNumber) 
  Next 
  Return aResult 
End

Download