Open mario-koehler opened 2 years ago
Die Regel lässt sich nicht im Allgemeinen anwenden, WENN else
Zweige vorhanden sind:
if (b1) {
if (b2) {
stmt;
} else {
// bedeutet (-b1 & -b2)
}
} else {
// bedeutet hier (-b1)
// würde dann bedeuten -(b1 & b2), != (-b1), != (-b1 && -b2)
}
was durch && ersetzbar ist:
if (b1) {
if (b2) {
....
}
}
Mir fällt bislang kein Fall einer Kaskadierung ein , den man direkt mit || ersetzen würde, || wäre für mich der Fall, gleicher Code in verschiedenen `if``:
if (b1) {
doX();
}
if (b2) {
doX();
}
Ich habe da beim posten nicht aufgepasst. Die Struktur muss wie folgt sein.
if (b1) {
if (b2) {
stmt1;
} else {
stmt2;
}
} else {
stmt2;
}
Diese lässt sich durch den folgenden Code abbilden.
if (b1 && b2) {
stmt1;
} else {
stmt2;
}
Als Spezialfall mit einer "leeren Anweisung" würde auch das folgende funktionieren.
if (b1) {
if (b2) {
stmt1;
}
}
=>
if (b1 && b2) {
stmt1;
}
Der folgende Code lässt sich durch ein ||
ausdrücken.
if (b1) {
stmt1;
} else {
if (b2) {
stmt1;
} else {
stmt2;
}
}
=>
if (b1 || b2) {
stmt1;
} else {
stmt2;
}
Es muss zuerst nach konkreten Beispielen gesucht werden.