Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Case of mehrere Befehle aber wie?
Nano-Ware - Mo 11.10.10 20:51
Titel: Case of mehrere Befehle aber wie?
Hey,
das hab ich im Internet gefunden..
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| case eingabe of 1: ausgabe := 'Sie haben 1 eingegeben'; 2: ausgabe := 'Sie haben 2 eingegeben'; 3: ausgabe := 'Sie haben 3 eingegeben'; else ausgabe := 'Sie haben nicht 1, 2 oder 3 eingegeben'; end; |
ich möchte aber wenn die Zahl 1 ist dass zB nicht nur "ausgabe := 'XX'" ausgeführt sondern auch noch eine andere Zuweißung gemacht wird. Wie geht das dann?
Danke schonmal (:
Gerd Kayser - Mo 11.10.10 20:55
Nano-Ware hat folgendes geschrieben : |
ich möchte aber wenn die Zahl 1 ist dass zB nicht nur "ausgabe := 'XX'" ausgeführt sondern auch noch eine andere Zuweißung gemacht wird. Wie geht das dann?
|
begin und end verwenden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| case eingabe of 1: begin ausgabe := 'Sie haben 1 eingegeben'; ... end; 2: ausgabe := 'Sie haben 2 eingegeben'; 3: ausgabe := 'Sie haben 3 eingegeben'; else ausgabe := 'Sie haben nicht 1, 2 oder 3 eingegeben'; end; |
Bergmann89 - Mo 11.10.10 20:56
Hey,
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| case eingabe of 1: begin ausgabe := 'Sie haben 1 eingegeben'; ausgabe := 'andere Zuweißung...'; end; 2: ausgabe := 'Sie haben 2 eingegeben'; 3: ausgabe := 'Sie haben 3 eingegeben'; else ausgabe := 'Sie haben nicht 1, 2 oder 3 eingegeben'; end; |
€: mist zu langsam ^^
MfG Bergmann.
Gerd Kayser - Mo 11.10.10 20:59
Bergmann89 hat folgendes geschrieben : |
€: mist zu langsam ^^ |
Der Kaffee macht den Unterschied. ;-)
FinnO - Mo 11.10.10 21:05
Gerd Kayser hat folgendes geschrieben : |
begin und end verwenden.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| case eingabe of 1: begin ausgabe := 'Sie haben 1 eingegeben'; ... end; 2: ausgabe := 'Sie haben 2 eingegeben'; 3: ausgabe := 'Sie haben 3 eingegeben'; else ausgabe := 'Sie haben nicht 1, 2 oder 3 eingegeben'; end; | |
besser formatiert wäre IMHO
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| case eingabe of 1: begin ausgabe := 'Sie haben 1 eingegeben'; ... end; 2: ausgabe := 'Sie haben 2 eingegeben'; 3: ausgabe := 'Sie haben 3 eingegeben'; else ausgabe := 'Sie haben nicht 1, 2 oder 3 eingegeben'; end; |
Gerd Kayser - Mo 11.10.10 21:12
FinnO hat folgendes geschrieben : |
besser formatiert wäre IMHO
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| case eingabe of 1: begin ausgabe := 'Sie haben 1 eingegeben'; ... end; 2: ausgabe := 'Sie haben 2 eingegeben'; | |
Wäre mir zu unübersichtlich. Erinnert mich immer an Spaghetticode. Leerzeichen am Anfang einer Zeile kosten nix, und dem Compiler ist es egal. ;-)
FinnO - Mo 11.10.10 21:39
Moin,
Wäre wahrscheinlich ein Glaubenskrieg, aber ich möchte in meinem Code immer die "Ebenen" in gleichen Abständen von der linken Seite halten.
LG
jaenicke - Mo 11.10.10 22:01
Naja, man sollte schon die Sprungmarken sehen können, begin und end gehören aber in einzelne Zeilen. Deshalb mache ich das immer so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| case eingabe of 1: begin ausgabe := 'Sie haben 1 eingegeben'; ... end; 2: ausgabe := 'Sie haben 2 eingegeben'; 3: ausgabe := 'Sie haben 3 eingegeben'; else ausgabe := 'Sie haben nicht 1, 2 oder 3 eingegeben'; end; |
So kann man das finde ich am schnellsten überblicken. Letztlich muss es jeder selbst wissen. Solange man selbst versucht übersichtlich zu bleiben und ein paar Grundsätze beachtet (wie eben einrücken und nur einen Befehl pro Zeile), dann passt das meistens schon. ;-)
Reinhard Kern - Di 12.10.10 01:30
Hallo,
Um den Glaubenskrieg noch ein bisschen anzuheizen, bevor ich mich endgültig von Delphi verabschiede, ich mache das immer so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TuWasImFall2; begin ... end;
case eingabe of 1: begin ausgabe := 'Sie haben 1 eingegeben'; ... end; 2: TuWasImFall2; 3: ausgabe := 'Sie haben 3 eingegeben'; else ausgabe := 'Sie haben nicht 1, 2 oder 3 eingegeben'; end; |
Wichtig ist nur, dass begin und end untereinander stehen, so dass man das eindeutig zuordnen kann. Da begin und end einen Block bilden, finde ich es nicht nötig, den Blockrumpf nochmal einzurücken, ist ja gleiche logische Ebene. Ob man dem case-Fall eine eigene Zeile spendiert, ist eher Geschmackssache, das braucht halt mehr Platz. Längere Befehlsfolgen lagere ich in eine (meistens lokale) Prozedur wie TuWasImFall2 aus, damit die case-Struktur übersichtlich bleibt.
5 - 4 - 3 - 2 - 1 schlagt euch!
Reinhard
elundril - Di 12.10.10 01:34
Mach ich auch immer so. Nur das ich die Zeile "Ausgabe : = 'Sie haben 1 eingegeben';" auch noch eingerückt hätte.
lg elundril
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!