Kontrollstrukturen

Kontrollstrukturen beeinflussen des Verlauf eines Programms. Die nachfolgenden Beispiele sind an das Greenfoot-Szenario "Mars-Rover" angelehnt, können aber auch ohne Kenntnis des Szenarios nachvollzogen werden.

Bedingte Anweisung

Die bedingte Anweisung überprüft den Wahrheitswert einer Bedingung. Ist die Bedingung erfüllt, so wird der erste Anweisungsbock ausgeführt, ansonsten der zweite mit else gekennzeichnete Anweisungsblock.

Zweiseitige Auswahl

Werden beide Fälle aufgeführt, so sprechen wir von zweiseitiger Auswahl.

if (huegelVorhanden("vorne")) {
  drehe("rechts");
}
else {
  fahre();
}

Einseitige Auswahl

Verzichten wir auf den else-Fall, so sprechen wir von einseitiger Auswahl.

if (huegelVorhanden("vorne")) {
  drehe("rechts");
  fahre();
}

Mehrseitige Auswahl

Gibt es mehr als zwei gleichwertige Alternativen, so kommt entsprechend die mehrseitige Auswahl zur Anwendung.

if (huegelVorhanden("vorne")) {
  drehe("rechts");
}
else if (huegelVorhanden("rechts")) {
  drehe("links");
}
else {
  fahre();
}

switch-Anweisung

Kann der weitere Verlauf vom Wert eines primitiven Datentyps oder vom Wert einer Zeichenkette abhängig gemacht werden, so steht als übersichtliche Alternative zur Mehrfachauswahl auch die switch-Anweisung bereit.

Die break-Anweisungen sorgen dafür, dass der Programmablauf nach der Abarbeitung eines Falls nach der switch-Anweisung fortgesetzt wird. Der optionale default-Fall tritt ein, wenn keiner der vorherigen case-Fälle zutrifft.

switch (anzahlMeinerSchritte) {
  case 0: { fahre();
            break; 
          }
  case 1: { drehe("links");
            break;
          }
  default: { drehe("rechts");
             break;
           }
}

Schleifen

Zur wiederholten Ausführung einer oder mehrerer Anweisungen werden Schleifen verwendet.

while-Schleife

Die while-Schleife wiederholt eine oder mehrere Anweisungen so lange, bis eine gegebene Bedingung nicht mehr erfüllt ist. Da die Bedingung vor dem Anweisungsblock überprüft wird ("vorprüfende Schleife"), ist es möglich, dass der Anweisungsblock gar nicht ausgeführt wird.

while (!huegelVorhanden("vorne")) {
  fahre();
}

do-while-Schleife

Die do-while-Schleife wiederholt eine oder mehrere Anweisungen so lange, bis eine gegebene Bedingung nicht mehr erfüllt ist. Da die Bedingung hier erst nach dem Anweisungsblock überprüft wird ("nachprüfende Schleife"), wird der Anweisungsblock mindestens einmal ausgeführt.

do {
  setzeMarke();
  fahre();
}
while (!huegelVorhanden("vorne"));

Zählschleife

In der Zählschleife wird eine Zählvariable mit einem Anfangswert belegt. Der zugehörige Anweisungsblock wird solange ausgeführt wie eine Schleifenbedingung erfüllt ist. In der Regel wird diese Bedingung von der Zählvariable selbst abhängen. Zusätzlich wird durch die dritte Komponente des Schleifenkopfes die Zählvariable nach jedem Durchlauf verändert, d.h. meist um eins erhöht oder erniedrigt.

Das folgende Beispiel sorgt dafür, dass die fahre()-Anweisung genau vier Mal ausgeführt wird:

for (int i=0; i<4; i++) {
  fahre();
}

results matching ""

    No results matching ""