![]() |
Simple If Then Else Frage
Hi.
Gibt es einen Unterschied zwischen:
Delphi-Quellcode:
und
if (StringList[i]='5') or (StringList[i]='-5') then Edit1.Visible:=True
else Edit1.Visible:=False;
Delphi-Quellcode:
also verändern die äußeren klammern irgendetwas oder kann ich mir die sparen?
if ( (StringList[i]='5') or (StringList[i]='-5') ) then Edit1.Visible:=True
else Edit1.Visible:=False; vielen dank schonmal |
Re: Simple If Then Else Frage
In diesem Falle kannst Du sie Dir sparen. Notwendig werden sie z.B. dann, wenn Du and und or mischen musst, da and einen größeren Stellenwert hat als or.
|
Re: Simple If Then Else Frage
Viel einfachher:
Delphi-Quellcode:
Edit1.Visible := (StringList[i]='5') or (StringList[i]='-5')
|
Re: Simple If Then Else Frage
Oder
Delphi-Quellcode:
Hat aber mit dem Kern der Frage nichts zu tun.
Edit1.Visible := abs(StrToIntDef(StringList[i],0)) = 5;
|
Re: Simple If Then Else Frage
Ist wie in der Mathematik:
Punktrechnung geht vor Strichrechnung! Also multiplizieren bindet stärker als addieren. Hier ist das so, dass ein and stärker binded als ein or. Beispiel:
Code:
a*b + c = a*b + c
a*( b + c ) = a*b + a*c
Code:
cu
a and b or c = a and b or c
a and ( b or c ) = a and b or a and c Oliver |
Re: Simple If Then Else Frage
Zitat:
|
Re: Simple If Then Else Frage
Dafür viel performanter. Eine "if" Abfrage erzeugt zwangsläufig einen bedingten Sprung. Sowas kostet Performance, weil der Prozessor im Endeffekt nicht weiß was er cachen soll: Den Code bei "then" oder bei "else". Modernere CPUs haben zwar heuristische Verfahren um zu sehen welcher Sprung "wahrscheinlicher" ist, aber wenn mans vermeiden kann ohne die Codelesbarkeit merkbar zu verschlechtern, sollte man die von Luckie gezeigte Schreibweise wählen.
|
Re: Simple If Then Else Frage
Zitat:
Und nach einem kurzen Test ist das noch unwichtiger, weil es keinen Unterschied macht. |
Re: Simple If Then Else Frage
Zitat:
|
Re: Simple If Then Else Frage
Leute, Ihr schweift vom Thema ab :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz