Abbruch noch vor der 2. Anweisung (Struktogramm)?
Hallo,
ich schreibe gerade ein Struktogramm zu einer Kara-Aufgabe, da ich in den nächsten Tagen eine Informatikklausur schreiben werde. Nur ist das Problem, dass ich nicht weiß, ob nach der 1. Anweisung (noch bevor die 2. eintritt) die Schleife abgebrochen werden kann, da die Abbruchbedingung erfüllt ist, aber die 2. Anweisung sofort auf die 1. folgt
Danke im voraus,
LG
PS: Bitte nur antworten, wenn ihr die Antwort auch wirklich kennt!
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.