y > 1)" Immer mit „Falsch“ bewerten? " /> y > 1)" Immer mit „Falsch“ auswerten? " />
Bewertung der Gültigkeit verketteter logischer Operatoren in C
Die Aussage „(4 > y > 1)“ wirft Fragen zu ihrer Gültigkeit und Bewertung auf in C. Lassen Sie uns diese Aspekte untersuchen und herausfinden, wie sich die Aussage in C verhält .
Ausdrucksauswertung
Die gegebene Anweisung kann in ihre logischen Operatoren zerlegt werden:
(4 > y) > 1
C wertet verkettete logische Operatoren von links nach aus richtig. Daher läuft die Auswertung wie folgt ab:
Implikation:
Der Ausdruck „(4 > y > 1)“ ist gültig, wird jedoch aufgrund der immer als falsch ausgewertet logischer Ablauf oben erläutert.
Ausnahme:
Eine Ausnahme von diesem Verhalten ist if y ist ein Objekt einer benutzerdefinierten Klasse und der Operator „>“ wurde überladen, um ein anderes Verhalten zu zeigen. In einem solchen Szenario kann das Ergebnis des Vergleichs von den typischen numerischen Vergleichsregeln abweichen.
Alternative Aussage:
Um eine klarere logische Semantik bereitzustellen, wird eine Umschreibung empfohlen der Ausdruck als:
(4 > y && y > 1)
Diese Formulierung vermeidet die Mehrdeutigkeit der ursprünglichen Aussage und wertet die Bedingungen in korrekt aus die gewünschte logische Reihenfolge.
Das obige ist der detaillierte Inhalt vonWird der verkettete Vergleich „(4 > y > 1)' von C immer als falsch ausgewertet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!