Thema: Delphi goto-befehl in delphi?

Einzelnen Beitrag anzeigen

Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#67

Re: goto-befehl in delphi?

  Alt 26. Jul 2006, 10:49
Zitat von Jasocul:
Klärt mich auf. Wo ist der Fehler?
Delphi-Quellcode:
fehler:='';
if Belegnummer <> 0 then
  if Belegdatum = 0 then
    fehler:='Fehler: Belegdatum'
  else
    if x = 0 then
      fehler:='Fehler: x'
    else
      if y = 0 then
        fehler:='Fehler: y'
else
  fehler:='Fehler: Belegnummer';
if fehler = 'then
  // mache was, es ist alles ok
Result:=fehler;
Der Fehler liegt im letzten else. Gebe mal für alle Variablen den Wert <> 0, dann kommt der Fehler "Belegnummer". Wenn die Belegnummer aber null ist, wird sofort aus dem Vergleich herausgesprungen, d. h. zum "Fehler:Belegnummer" kommt er nicht. Wenn Du das aber haben willst, musst Du um die erste Bedingung begin und end setzen.
Delphi-Quellcode:
fehler:='';
if Belegnummer <> 0 then
begin
  if Belegdatum = 0 then
    fehler:='Fehler: Belegdatum'
  else
    if x = 0 then
      fehler:='Fehler: x'
    else
      if y = 0 then
        fehler:='Fehler: y'
end
else
  fehler:='Fehler: Belegnummer';
if fehler = 'then
  // mache was, es ist alles ok
Result:=fehler;
Deshalb habe ich das geändert, allerdings muss in meinem Beispiel das "<>" geändert in "=" werden, das hatte ich übersehen.
Zitat von Michael Habbe:
Delphi-Quellcode:
fehler:='';
if Belegnummer = 0 then // hier hatte ich den Fehler "<>"
  fehler:='Fehler: Belegnummer'
else
  if Belegdatum = 0 then
    fehler:='Fehler: Belegdatum'
  else
    if x = 0 then
      fehler:='Fehler: x'
    else
      if y = 0 then
        fehler:='Fehler: y'
      else
        ; // mache was, es ist alles ok, kein Fehler aufgetreten
result := fehler;

Zitat von Luckie:
Und warum hatte er da einen Fehler drinne? Weil es einfach unübersichtlich ist. Jetzt stell dir den Code mal noch mit 10 bis 15 Zeilen Code zwischen den ifs vor.
Also unübersichtlich kann ich diese paar Zeilen nicht nennen.
Ich habe in meinen Projekten diese Verschachtelungen mit viel Code zwischen den begins und ends. Diese erstrecken sich teilweise über mehrere Seiten. Die Voraussetzung für die Übersichtlichkeit ist natürlich, dass man alles brav ordentlich einrückt. Dann muss man nur mit dem Cursor nach oben fahren, um z.B. zum end das begin zu finden.
  Mit Zitat antworten Zitat