Einzelnen Beitrag anzeigen

Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: if ... else, 2 mal if oder case ?

  Alt 5. Jun 2005, 22:48
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
  Mit Zitat antworten Zitat