![]() |
Verzweigung
hi,
ich muss für ein programm sozusagem eine wertetabelle realsisieren... also wenn ich z.b. x und y eingebe, dann soll y' rauskommen.... wenn ich um das zu realisieren viele if abfragen machen würde, dann könnte es ja sein, dass mehrere aktionen hinteriander ausgeführt werden:
Delphi-Quellcode:
Wie kann ich das verhindern ?
if (LE = 'h') and (zustand = 1) then zustand := 2;
if (LE = 'h') and (zustand = 2) then zustand := 5; if (LE = 'h') and (zustand = 3) then zustand := 2; if (LE = 'h') and (zustand = 4) then zustand := 5; if (LE = 'h') and (zustand = 5) then zustand := 5; if (LE = 'a') and (zustand = 1) then zustand := 5; if (LE = 'a') and (zustand = 2) then zustand := 3; if (LE = 'a') and (zustand = 3) then zustand := 5; if (LE = 'a') and (zustand = 4) then zustand := 5; if (LE = 'a') and (zustand = 5) then zustand := 5; if (LE = '!') and (zustand = 1) then zustand := 5; if (LE = '!') and (zustand = 2) then zustand := 5; if (LE = '!') and (zustand = 3) then zustand := 4; if (LE = '!') and (zustand = 4) then zustand := 5; if (LE = '!') and (zustand = 5) then zustand := 5; |
Re: Verzweigung
Also falls ich die Frage richtig verstanden habe, dann sollte dir "Else" helfen
If (...) and (...) Then Else If (...) and (...) Then Else usw. |
Re: Verzweigung
Als eine einfache Optimierung könntest du das auch wie folgt schreiben
Delphi-Quellcode:
Das würde das ganze etwas verkürzen.
if (LE = 'h') then
begin case zustand of 1: ... 2: ... 3: ... 4: ... 5: ... end; end; |
Re: Verzweigung
Zitat:
Delphi-Quellcode:
Gruß Der Unwissende
if (LE = 'h') then
case zustand of 1, 3 : zustand := 2; else zustand := 5; end; |
Re: Verzweigung
Ja, das ist dann noch besser. Man geht auch gleich der Problematik aus dem Weg, die die ursprüngliche Frage aufwarf.
|
Re: Verzweigung
Zitat:
Trotzdem sollte man immer der Lesbarkeit den Vorzug geben. Ich habe nur gezeigt dass es kürzer möglich ist, schon allein über das Lesbarer und/oder besser könnte man sich dann streiten. Und wegen ein paar microsekunden optimierung oder eben nicht, darauf sollte es dann nie ankommen (wer merkt dass schon?) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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 by Thomas Breitkreuz