Im folgenden C# BeispielZweck des Hinzufügens unnötiger Klammern in einem logischen Ausdruck mit && und ||
bool isTrue = (isP1 && isQ1) ||
(isP2 && isQ2) ||
(isP3 && isQ3);
die Klammern sind nicht erforderlich, da &&
eine höhere Priorität als ||
hat.
Aber ich habe gehört, dass
die Klammern für Klarheit hinzugefügt werden und weil die Logik sonst tun links nach rechts PEMDAS fehlschlagen
Handhabung Was bedeutet „, weil die Logik könnte sonst scheitern, wenn man von links nach rechts PEMDAS-Handling macht "meine ich hier?
Wenn die PEMDAS-Verarbeitung von links nach rechts ausgeführt wird, hat &&
keine höhere Priorität als ||
?
Danke.
Es bedeutet, dass jemand die Vorrangregeln des Operators (über PEMDAS hinaus) nicht verinnerlicht hat - oder denkt, dass andere Leser des Codes das vielleicht nicht tun. Fair genug (vor allem, weil sie zwischen Programmiersprachen unterscheiden). –
Wenn Sie darüber nachdenken müssen, ob Sie die Klammern brauchen oder nicht, dann ist es besser, sie zu verwenden. –
Manchmal ist es nicht nur nützlich, Klammern zu verwenden, sondern auch erklärende Variablen einzuführen, die lesbare Namen für Bedingungen liefern. Z.B. anstelle von 'isP2 && isQ2' können Sie' isRentExpired' verwenden. –