Ich hab mal if.. else if und case verglichen. Einmal der Source dazu:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, k: integer;
aBool: integer;
begin
j := GetTickCount;
for i := 0 to 100000 do
begin
if aBool = 1 then
aBool := 0 else
aBool := 1;
if aBool = 0 then
Button1.Caption := 'bla'
else if aBool = 1 then
Button1.Caption := 'bäh';
end;
k := GetTickCount;
ShowMessage(IntToStr(k-j));
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i, j, k: integer;
aBool: integer;
begin
j := GetTickCount;
for i := 0 to 100000 do
begin
if aBool = 1 then
aBool := 0 else
aBool := 1;
case aBool of
0: Button2.Caption := 'bla';
1: Button2.Caption := 'bäh';
end;
end;
k := GetTickCount;
ShowMessage(IntToStr(k-j));
end;
Stört euch nicht an dem "aBool". Ich hatte es mit Boolschen Typen getestet, aber da waren kleine Probleme beim Case drin, da hab ich für beide Integer genommen, aber die Namen nicht geändert
Ergebnisse:
if.. else if: 6453
case: 6351
Case hat bei meinen Tests zwar immer eine etwas schnellere Geschwindigkeit, allerdings ist das nur minimal (in dieser Größenordnung)
Kannst das ja mal fortführen
PS: Solche Probleme will ich haben, dass ich mir über sowas Gedanken mach