Abbruch noch vor der 2. Anweisung (Struktogramm)?

1 Antwort

Eine Schleife selbst wird nicht mitten in ihrem Rumpf abbrechen (es sei denn, es fliegt ein Fehler). Das heißt, diese Schleife (Pseudocode):

while someCondition:
  sayA()
  sayB()

sagt so lange A + B, bis die Bedingung nicht mehr erfüllt wird.

Um dennoch früher aus den Rumpf auszubrechen, benötigst du eine Verzweigung:

while someCondition:
  sayA()

  if someCondition:
    sayB()
  else:
    break

Die meisten Programmiersprachen haben einen break-Befehl im Sprachrepertoire, der eine Schleife sofort abbricht. Ebenso ist der continue-Befehl geläufig, um sofort den nächsten Schleifenlauf zu starten.

Der else-Knoten im obigen Code könnte übrigens auch komplett weggelassen werden, denn im Schleifenkopf würde das Konstrukt ja ebenso realisieren, dass die Bedingung nun erfüllt ist.