if then && und || verschachteln

Thomasio

Erfahrenes Mitglied
Kann man, und wenn ja, dann wie, in Bedingungen && und || ineinander verschachteln

Ich mache mal ein paar Beispiele

1) das geht natürlich

if (a == b && c == d && e == f)
{
// mach irgendwas;
}

2) auch korrekt

if (a == b || c == d || e == f)
{
// mach irgendwas;
}

3) hätte ich gerne, weiss nur nicht ob das geht

if (a == b || (c == d && e == f))
{
// mach irgendwas;
}

Zur Not macht man die Bedingungen halt einzeln, alle nacheinander, das geht sowieso, ich wüsste nur gerne, ob das auch in einem Schritt erlaubt ist
 
Hmm, wenn du nicht weis, ob es geht.. warum probierst du es dann nicht einfach mal aus? Jedenfalls mal als Tip für die Zukunft..

Ich nehme mal an, du willst auf folgendes raus?!:
Code:
if ((a == b) || (c == d && e == f))

*grüssle*
MeinerEiner
 
Zuerst mal danke für die schnellen Antworten
Ausprobiert habe ich es deshalb nie, weil im Zweifelsfalle die Abfragen einzeln hintereinander gesetzt sowieso funktioniert
Ich habe mich zwar jedesmal wenn ich so etwas gebraucht habe gefragt, ob es nicht kürzer ginge, aber nachdem ich ja eine Version kannte, wie es auf jeden Fall geht, bin ich immer dabei geblieben

Nochmal danke, ab jetzt weiss ich Bescheid
 
Solche Verschachtelungen gehen auf jeden Fall. Denn der Ausdruck in der Klammer nachdem if gibt ja einen bool-Wert zurück. Und das ist ja genau das was if erwartet.
Du musst bei der Verknüpfung von verschiedenen Operatoren die Prioritäten der einzelnen Operatoren beachten.
Siehe dazu: http://www.highscore.de/cpp/einfuehrung/operatoren.html#section9

Falls du dir mit den Prioritäten nicht sicher bist, setzt einfach Klammern. Ausserdem erleichtern Klammern das lesen des Codes (auch wenn sie überflüssig sind).
Also: lieber zuviel Klammern setzen.

Gruss Lukes
 
Zurück