Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - if anweisungs problem
hibbert - Sa 11.01.03 01:22
Titel: if anweisungs problem
hallo,
eigendlich ist es kein richtiges problem, ich möchte nur wissen, ob ich das auch kürzer fassen kann.
Quelltext
1: 2: 3:
| if(auto.Left=83) or (auto.Left=84) or(auto.Left=85)then begin end; |
gibt es da nicht etwas mit
Quelltext
1: 2: 3:
| if auto.left=83..85 then begin end; |
:?: :?: :?:
ich hoffe, dass es da soetwas gibt.
mfg hibbert
Brueggendiek - Sa 11.01.03 01:34
Hallo Hibbert!
Im Prinzip geht das - mit SETs.
Quelltext
1: 2: 3:
| if auto.left in [ 83..85 ] then begin end; |
Es ist übrigens auch möglich, unzusammenhängende Werte zu schreiben, z.B.:
Quelltext
1: 2: 3:
| if auto.left in [1, 10..15, 99] then begin end; |
Die Bedingung ist erfüllt, wenn der Wert 1, 99 oder im Bereich 10 bis 15 ist.
Die Angaben in der eckigen Klammer bilden eine Mengen-Konstante.
Gruß
Dietmar Brüggendiek
hibbert - Sa 11.01.03 12:34
Hey, vielen dank Brueggendiek, damit kann man echt zeit sparen ! :wink:
mfg hibbert
Klabautermann - Sa 11.01.03 14:27
Hallo,
hibbert hat folgendes geschrieben: |
vielen dank Brueggendiek, damit kann man echt zeit sparen ! :wink: |
wie man es sieht. Dein Programm ist mit der OR Variante schneller als mit der IN Variante.
Die frage ist, ob dich die paar Taktzyklen bei heutigen Rechnern stören.
Gruß
Klabautermann
hibbert - Sa 11.01.03 15:22
hallo,
Klabautermann, da musst du mich falsch verstanden haben. das mit
Zitat: |
vielen dank Brueggendiek, damit kann man echt zeit sparen ! :wink: |
war anders gemaint, und zwar beim eintippen.
es ist ja wohl ein unterschied wenn ich eintippe
Quelltext
1: 2: 3:
| if (auto.left=20)or(auto.left=21)or (auto.left=22)or (auto.left=23)or (auto.left=24)or (auto.left=25)or (auto.left=26)or (auto.left=27)...or (auto.left=50) then begin end; |
oder wenn ich das eintippe:
Quelltext
1: 2: 3:
| if auto.left in [20..50] then begin end; |
da hab ich doch dann zeit gespart oder ? :wink:
mfg hibbert
smiegel - Sa 11.01.03 16:12
Hallo,
folgendes geht auch:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| case auto.left of 20..50: begin ... TuIrgendwas; ... end; end; // case |
Dieser Code ist, wenn ich mich nicht täusche, performanter als der Mengenvergleich.
Klabautermann - Sa 11.01.03 16:30
Hallo,
hibbert hat folgendes geschrieben: |
Klabautermann, da musst du mich falsch verstanden haben. das mit |
nein ich habe dich schon richtig verstanden. Ich wollte dich nur auf die negativen Seiten der Mengenoperationen hinweisen. Nur um das klar zu stellen: Ich verwende in solchen Fällen auch Mengenoberationen.
smiegel hat folgendes geschrieben: |
Dieser Code ist, wenn ich mich nicht täusche, performanter als der Mengenvergleich. |
Ich weiß nicht wie Delphi hier Optimiert, aber für mich ist auch das ein Mengenvergleich.
Gruß
Klabautermann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!