002
24.12.2018, 07:48 Uhr
ao
(Operator)
|
Nicht ganz. Die Ungleichungskette löst keinen Compilerfehler aus, vielmehr ist sie ein gültiger Ausdruck, der von links nach rechts ausgewertet wird. Ich setze mal Klammern, um die Reihenfolge zu verdeutlichen:
C++: |
if ((2 <= Zugehoerigkeit) < 5)
|
Der linke Teil (2 < Zugehoerigkeit) wird ausgewertet, und das Ergebnis ist entweder false oder true, entsprechend 0 oder 1 in Zahlen. Das wird anschließend auf "< 5" geprüft, was immer true ist.
Klar, dass das nicht das ist, was man will. Deshalb muss man es so ähnlich formulieren wie oben, aber nicht mit || (Oder-Verknüpfung), sondern mit && (Und-Verknüpfung). |