3 - Verzweigungen Flashcards
Formulierung einer if-Anweisung
if (x > y) {
max = x;
} else {
max = y;
}
Formulierung einer switch-Anweisung
nur für int, short, byte, char, String!
switch (grade) {
case 1: text = “Sehr gut”;
break;
case 3: text = “Befriedigend”;
break;
case 5: text = “Nicht genügend”;
break;
default:
text = “ungültig”;
}
mehrere cases können auch in eine Zeile geschrieben werden (case 1: case 2: case 3:…)
Mit welchen Operatoren können boolesche Werte verknüpft werden? Welche davon binden am stärksten?
- Negation: ! (unär)
- Konjunktion: && (und, beides muss true sein)
- Disjunktion: || (oder, min. eines muss true sein)
- Vergleiche: ==, !=
Vorrangregeln:
! bindet stärker als && bindet stärker als ||
~ bindet stärker als & bindet stärker als | (bitweise Verknüpfungen)
->können durch Klammern durchbrochen werden
Was besagen die Regeln von DeMorgan bezüglich der Umformung von booleschen Ausdrücken?
!(a && b) = !a || !b
!(a || b) = !a && !b
Was bedeutet Lazy Evaluation?
Aufgrund von Lazy Evaluation wird die Auswertung von verknüpften Ausdrücken abgebrochen, sobald das Ergebnis feststeht.
Formulierung einer bedingten Zuweisung (? : Operator)
max = (a > b) ? a : b;
->ist der Ausdruck true, wird der Ausdruck nach dem Fragezeichen, andernfalls der Ausdruck nach dem Doppelpunkt zugewiesen.
Was sind Assertions?
Assertions sind Zusicherungen/Aussagen über den Zustand eines Programms an einer bestimmten Stelle. Sie werden als Kommentare angegeben und fördern das bessere Verständnis des Programms (Erklärungen). Sie können aber auch als Statement geschrieben werden (mit assert; muss true sein, da es von Java ausgewertet wird).