Handbuch zur dynamischen Ablaufverfolgung in Solaris

Logische Operatoren

D stellt Ihnen für Ihre Programme die folgenden binären logischen Operatoren zur Verfügung. Die ersten beiden Operatoren sind gleichbedeutend mit den entsprechenden ANSI-C-Operatoren.

Tabelle 2–8 Logische Operatoren in D

&&

Logisches UND: wahr, wenn beide Operanden wahr sind

||

Logisches ODER: wahr, wenn einer oder beide Operanden wahr sind

^^

Logisches EXKLUSIV-ODER: wahr, wenn genau ein Operand wahr ist

Logische Operatoren werden meistens zum Schreiben von D-Prädikaten eingesetzt. Der logische UND-Operator führt eine Short-Circuit-Evaluation durch: Wenn der Operand auf der linken Seite falsch ist, wird der weiter rechts stehende Ausdruck nicht mehr ausgewertet. Auch der logische ODER-Operator führt eine Short-Circuit-Evaluation durch: Wenn der Operand auf der linken Seite wahr ist, wird der weiter rechts stehende Ausdruck nicht mehr ausgewertet. Beim logischen EXKLUSIV-ODER-Operator erfolgt die Auswertung ohne Short-Circuit: Es werden stets beide Operanden des Ausdrucks ausgewertet.

Zusätzlich zu den binären logischen Operatoren steht der unäre !-Operator für logische Negierungen eines einzelnen Operanden zur Verfügung: Er konvertiert einen Operanden gleich Null in Eins und einen Operanden ungleich Null in eine Null. D-Programmierer verwenden ! konventionsgemäß beim Umgang mit Ganzzahlen, die boolesche Werte darstellen sollen, und == 0 bei nicht-booleschen Ganzzahlen. Die beiden Ausdrücke sind jedoch eigentlich bedeutungsgleich.

Die logischen Operatoren können auf Operanden der Integer- oder Zeigertypen angewendet werden. Zeiger-Operanden werden von den logischen Operatoren als ganzzahlige Werte ohne Vorzeichen interpretiert. Wie bei allen logischen und relationalen Operatoren in D sind auch hier die Operanden wahr, wenn sie einen ganzzahligen Wert ungleich Null und falsch, wenn sie einen ganzzahligen Wert gleich Null aufweisen.