Autor Beitrag
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Mo 11.10.10 20:51 
Hey,

das hab ich im Internet gefunden..

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Mo 11.10.10 20:55 
user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
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.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
case eingabe of
  1begin
       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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mo 11.10.10 20:56 
Hey,

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
case eingabe of
  1begin
    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.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Mo 11.10.10 20:59 
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
€: mist zu langsam ^^
Der Kaffee macht den Unterschied. ;-)
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Mo 11.10.10 21:05 
user profile iconGerd Kayser hat folgendes geschrieben Zum zitierten Posting springen:
begin und end verwenden.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
case eingabe of
  1begin
       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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Mo 11.10.10 21:12 
user profile iconFinnO hat folgendes geschrieben Zum zitierten Posting springen:
besser formatiert wäre IMHO

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.