Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - If / Else struktur


markus\win32 - Do 01.05.03 18:23
Titel: If / Else struktur
Ich habe ein commandline programm, das eine eingabe nach befehlen durchsucht also:

Quelltext
1:
2:
3:
if input = 'exit' then continue = 0
else if input = 'info' then displayinfo()
else if ...


gibt es da noch was effektiveres ?
oder vieleicht sogar was einfacheres ?

Moderiert von user profile iconUGrohne: Code-Tags eingefügt


AXMD - Do 01.05.03 18:32

Hi,

Zitat:

Quelltext
1:
continue = 0                    


Zumal das keinen Sinn ergibt... (vielleicht ":= 0"), haben wir außerdem schon irgendwo so einen Topic (wenn ich mich nicht irre).
Zu deiner Frage: nein, gibt es nicht. Denn was ist dir an einem if-else-Konstrukt zu langsam?

AXMD


markus\win32 - Do 01.05.03 18:37

ok :=

aber ich meine eine eingabe danach abzufragen ob der text einem befehl entspricht mit if/else - ich dachte nur das geht irgendwie noch besser oder professioneller
denn wenn da mal anstatt nach 10 verschiedenen nach 50 abgesucht wird ...


wulfskin - Do 01.05.03 18:48

Hallo Markus!

Wenn du einen Arrayvordefinierst, der für jeden Befehl einen Index hat, kannst du die Case Of Konstruktion benutzen. Damit ist es zum Einen übersichtlicher, zum Anderen sieht es auch professioneller aus, so wie du es willst ;)!

Gruß wulfskin!


markus\win32 - Do 01.05.03 18:52

naja also

Quelltext
1:
2:
3:
4:
case input of:
 command[0] : continue := false;
 command[1] : ShowHelp();
 command[2] : ...


aber so weit ich weiss kann man ja bei case variable of für variable keine strings hernehmen oder ?


wulfskin - Do 01.05.03 19:08

Nein, kannst du nicht. Deshalb ein Array benutzen!
Beispiel:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
const
  Befehle: Array [1..3] of String = ('TEST', 'TEST2', 'TEST3');
begin
  case FindBefehl(Befehl) of
    1: //Mach was;
  else
    writeln('Ungültiger Befehl!');
  end;
Gruß wulfskin!