Vetiefung von Kontrollstrukturen Flashcards

1
Q

goto Statement

A

° Unbedingte Verzweigung
° Führt zu unlesbaren und unzuverlässigen Programmen
° Jede beliebige Reihenfolge von Anweisungen unabhängig von ihrer textlichen Reihenfolge
° gibt es in Java nicht, goto ist jedoch als Schlüsselwort reserviert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Blöcke

A

° Zusammengesetze Anweisungen mit lokalen Variablen
° Syntaktisch geklammert {}
° blockstrukturiert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Geschachtelte if-Anweisung

A

° else-Zweig bezieht sich immer auf die letzte if-Anweisung ohne else-Zweig!!
-> Problem nennt sich dangling else
° Explizite Block-Klammerung, um Fehler zu vermeiden
° if und else Anweisungen sollten in einer eigenen Zeile stehen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

switch-Anweisung

A

° Auswahlanweisung, ist ein Mehrweg-Verzweigung
° Mehrere Fälle können unterschiedlich behandelt werden
° Unterschiede zur if-Anweisung:
- Mehrere Ausdruckstypen können die Auswahl kontrollieren
° Es können einer oder mehrere Fälle ausgewählt werden
° Statt else-Falles gibt es einen Standardfall für alle nicht benannten Fälle
° alternative zu break ist return
° jeder case-Label darf nur einmal vorkommen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Beispiel für switch-Anweisungen
A
switch (gedrueckteTaste)
{
case 'a': // 'a': case-Label -> nur Konstante (häufig Typ int oder char)
       bewegeSpielerNachLinks();
       break(); // sorgt dafür das switch nicht ewig ausgeführt wird, Abbruchbedingung
case 'b':
       bewegeSpielerNachRechts();
       break();
case ' ':
       feuereRaketeAb();
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Beispiel für switch-Anweisungen
A
switch (buchstabe)
{
       case 'a':
       case 'A':
       case 'e':
       case 'E':
       case 'i':
       case 'I':
       case 'o':
       case 'O':
       case 'u':
       case 'U': istVokal = true;
}
..... // break; Anweisung ist nicht notwendig, da  die Case-Label denselben Wert haben sollen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Beispiel für switch-Anweisungen
A
int monat = liesMonatszahlVomBenutzer();
int tage;
switch (monat)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
       tage = 31;
       break;
case 4:
case 6:
case 9:
case 11:
       tage = 30;
       break;

case 2:
tage = 28;
break;

default:
tage = -1;
}
System.out.println(“Der Monat “ + monat + “ hat “ + tage + “ Tage.”);

// solte keiner der Fälle zutreffen und die default-Anweisung fehlen, so wir die gesamte switch-Anweisung einfach übersprungen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly