Objektorientierte Programmierung OOP
KE 2 Datentypen und Kontrollstrukturen; Begriffe, Beispiele und Definitionen
KE 2 Datentypen und Kontrollstrukturen; Begriffe, Beispiele und Definitionen
-
- 1 / 90
-
Flashcards
Beispiel: break-Anweisungen in einer Mehrfach-Fallunterscheidung
Das folgende Programmstück illustriert den Gebrauch der break-Anweisung in einer switch-Anweisung:
int weekdays;
...
switch (weekdays) {
case 1: System.out.println("Monday");
break;
case 2: System.out.println("Tuesday");
break;
case 3: System.out.println("Wednesday");
break;
case 4: System.out.println("Thursday");
break;
case 5: System.out.println("Friday");
break;
case 6: System.out.println("Saturday");
break;
case 7: System.out.println("Sunday");
break;
default: System.out.println("there are no more weekdays");
}
Welcher Fall aus 1 bis 7 auch immer bei der Ausführung dieser Fallunterscheidung zutrifft: das Programm wird immer nur den zugehörigen Wochentag auf Ihrem Bildschirm ausgegeben, da die break-Anweisungen verhindern, dass der Kontrollfluss über die nachfolgenden Anweisungen fließt.
Beispiel: break-Anweisung in einer do-Schleife
Gegeben seien die folgenden Anweisungen:
int x = 317;
do {
if (x % 17 == 0) {
break;
}
x++;
} while (true);
System.out.println(x);
Bei der Ausführung erscheint die Ausgabe 323 auf dem Bildschirm, da die Schleife auf Grund der break-Anweisung genau dann verlassen wird, wenn x durch 17 teilbar ist. Der Kontrollfluss ist in Abb. 14.3-1 dargestellt.
continue-Anweisung Die Anweisung continue stoppt die Ausführung der Wiederholungsanweisung, in der sie vorkommt, springt zum Anfang der Schleifenanweisung und startet unverzüglich den nächsten Schleifendurchlauf. [JLS: § 14.16]
Definition: continue-Anweisung
Die Anweisung continue stoppt die Ausführung der Wiederholungsanweisung, in der sie vorkommt, springt zum Anfang der Schleifenanweisung und startet unverzüglich den nächsten Schleifendurchlauf. [JLS: § 14.16]
Beispiel: continue in einer for-Schleife
Gegeben seien die folgenden Anweisungen:
for (int i = 0; i < 10; i++) {
if (i == 5) {
i = i + 2; continue;
}
System.out.println(i);
}
Bei der Ausführung erscheint die folgende Ausgabe auf dem Bildschirm: 0 1 2 3 4 8 9 Wenn i den Wert 5 annimmt, wird i zuerst um 2 erhöht und anschließend direkt die Anweisung forUpdate (i++) ausgeführt. Somit ist in i der Wert 8 gespeichert und die Schleife wird fortgesetzt. Der Kontrollfluss ist in der Abbildung veranschaulicht.
Beispiel: Schleife mit break- und continue-Anweisung
Eine while-Schleife mit break- und continue-Anweisung ist in der unten stehenden Anweisungssequenz dargestellt:
int summe = 0;
while (summe < 100) {
summe += 1;
if (summe == 20) {
System.out.println("Schluss!");
break;
}
if (summe < 16) {
summe += 3; continue;
}
System.out.println(summe);
}
Begriff: Gültigkeitsbereich
Der Gültigkeitsbereich (engl. scope) einer Variablendeklaration ist der Rest des Blocks, inklusive aller inneren Blöcke, in dem sie sich befindet. [JLS: § 14.4.2]
Jeder Block, inklusive all seiner enthaltenen Blöcke, ist ein eigener Sichtbarkeitsbereich.
Innerhalb eines Sichtbarkeitsbereichs können Variablennamen nicht erneut in Deklarationen benutzt werden. Deklarationen mit identischen Variablennamen in getrennten Sichtbarkeitsbereichen sind zulässig
Programm: Gültigkeitsbereiche und verschachtelte Blöcke
Die Abbildung veranschaulicht das Konzept des Gültigkeitsbereiches und der Sichtbarkeit von Variablennamen für das Beispiel in Programm 15-1. Obgleich kein guter Programmierstil, darf in Programm 15-1 der Name i in den Blöcken S1 und S3 wiederverwendet werden, weil sich die Blöcke nicht überschneiden. Hätten wir aber anstelle von temp den Namen i, treffer, summe oder gefunden in Block F2 gewählt, wäre das Programm illegal geworden.