Heim > Backend-Entwicklung > C++ > Wird der verkettete Vergleich „(4 > y > 1)' von C immer als falsch ausgewertet?

Wird der verkettete Vergleich „(4 > y > 1)' von C immer als falsch ausgewertet?

Linda Hamilton
Freigeben: 2024-12-19 01:11:09
Original
445 Leute haben es durchsucht

Does C  's Chained Comparison 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
Nach dem Login kopieren

C wertet verkettete logische Operatoren von links nach aus richtig. Daher läuft die Auswertung wie folgt ab:

  1. Vergleiche 4 und y:Wenn y kleiner als 4 ist, ist das Ergebnis 1 (wahr); andernfalls ist es 0 (falsch).
  2. Vergleichen Sie das Ergebnis von Schritt 1 und 1:Da Das Ergebnis des ersten Vergleichs (1 oder 0) kann niemals größer als 1 sein, das Ergebnis dieses Vergleichs ist immer falsch (0).

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage