Re: Größer als und kleiner als
Hallo,
wer Probleme mit den Vergleichsoperatoren hat und mindestens über Delphi6 verfügt, der kann auch die (überladene) Funktion InRange aus der Unit Math verwenden:
Delphi-Quellcode:
Gruß Hawkeye
if InRange(BMI, 19, 24) or {and?} InRange(Alter, 19, 24) then ...
|
Re: Größer als und kleiner als
Wenn nur ANDs verwendet werden, muss das auch ohne Klammern funktionieren.
|
Re: Größer als und kleiner als
Zitat:
|
Re: Größer als und kleiner als
Das ist ja das Problem, dass der Fragesteller selbst nicht genau zu wissen scheint, ob beiden Zahlen im angegebenen Bereich liegen müssen. Übrigens hat AFAIK AND eine stärkere Bindung als OR, oder? Somit wären die Klammern in jedem Fall überflüssig, oder bin ich da fehlinformiert?
|
Re: Größer als und kleiner als
M.W. sind sie gleich berechtigt
|
Re: Größer als und kleiner als
Die OH äußert sich dazu mit dem Kurzschlussverfahren =) :
Vollständige Auswertung und Kurzschlussverfahren im Vergleich Der Compiler unterstützt zwei Auswertungsmodi für die Operatoren and und or: die vollständige Auswertung und das Kurzschlussverfahren. Bei der vollständigen Auswertung werden alle Operanden eines and- oder or-Ausdrucks auch dann ausgewertet, wenn das Resultat des gesamten Ausdrucks bereits feststeht. Das Kurzschlussverfahren geht streng von links nach rechts vor und wird beendet, sobald das Ergebnis des gesamten Ausdrucks feststeht. Wenn beispielsweise der Ausdruck A and B im Kurzschlussverfahren ausgewertet wird und A den Wert False hat, wertet der Compiler B nicht mehr aus, da bereits feststeht, dass nach der Auswertung von A auch der gesamte Ausdruck den Wert False haben wird. |
Re: Größer als und kleiner als
AND und OR sind nicht gleichberechtigt! AND entspricht einer Multiplikation ("Punktrechnung"), OR einer Addition ("Strichrechnung"). Es gilt aber immer noch der Satz: Punktrechnung vor Strichrechnung.
Aber warum lange rätseln, wenn man durch gezieltes Setzen von Klammern für Klarheit bei Compiler und Leser sorgen kann? Gruß Hawkeye |
Re: Größer als und kleiner als
Zitat:
|
Re: Größer als und kleiner als
Vielleicht weil immer ein AND/OR ein bool'schen Audruck liefert
|
Re: Größer als und kleiner als
Siehe #29
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz