Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Funktionsaufruf in mehrere folgenden Ifs


HenryHux - Mi 15.12.10 22:41
Titel: Funktionsaufruf in mehrere folgenden Ifs
Hi, kurze Frage.

Was ist kürzer?

Delphi-Quelltext
1:
2:
3:
If (bedingung1) and (bedingung2) and (funktion) then xxx
else if bedingung3) and (bedingung4) and (funktion) then xxy
else if bedingung5) and (bedingung6) and (funktion) then xyy


oder

Delphi-Quelltext
1:
2:
3:
 If Funktion then
begin
end;


Mich würde interessieren, ob oben die Funktion 3 mal aufgerufen wird, wenn ja wäre die untere deutlich schneller.

Lg


Xion - Mi 15.12.10 23:00

Soweit ich weiß wird die Funktion 3x ausgeführt, ja. Wobei die Funktion nur ausgeführt wird, wenn nötig. Sind Bedinung1,3,5 false, dann wird die Funktion garnicht ausgeführt, da (false and egal and egal) = false


elundril - Mi 15.12.10 23:06

user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
Soweit ich weiß wird die Funktion 3x ausgeführt, ja. Wobei die Funktion nur ausgeführt wird, wenn nötig. Sind Bedinung1,3,5 false, dann wird die Funktion garnicht ausgeführt, da (false and egal and egal) = false


nicht immer. Dafür muss ein Kompilierschalter gesetzt sein, das eben die ausdrücke nicht vollständig ausgewertet werden. aber rein übersichtshalber würd ich persönlich die 2. Variante bevorzugen.

lg elundril


HenryHux - Mi 15.12.10 23:11

Also habe es ausprobiert, er führt die Funktion mit else 3 mal aus.

Lg