![]() |
Auf welches IF (bei mehreren IFs) bezieht sich ein ELSE?
Gibt es da eine Regel oder ist das eine Einstellungssache? Ein Beispiel
Delphi-Quellcode:
Wenn ich das teste, bezieht sich ELSE bei mir auf das zweite IF. Die Frage die ich mir stelle ist allerdings - ist das eine Einstellungssache oder bezieht sich ELSE immer auf das letzte IF? Kann man drauf vertrauen?
var
a: Integer; begin Randomize; a := Random(3); //Ergibt eine Zahl zwischen 0 und 2 if a > 0 then if a = 1 then ShowMessage('a ist 1') else ShowMessage('a ist 2'); end; |
AW: Auf welches IF (bei mehreren IFs) bezieht sich ein ELSE?
Ja, ist so, trotzdem würde ich da mit
Delphi-Quellcode:
arbeiten um das deutlicher hervorzuheben. Source ist nicht nur für den Compiler sondern auch für den Entwickler und die Kollegen.
begin ... end
|
AW: Auf welches IF (bei mehreren IFs) bezieht sich ein ELSE?
Ein else bezieht sich auf das jeweils letzte If, das keinen else-Zweig besitzt.
Wenn man nicht selbs mit begin..end strukturiert. Gruß K-H |
Dieses Thema wurde am "13. Jan 2019, 15:19 Uhr" von "Luckie" aus dem Forum "Programmieren allgemein" in das Forum "Object-Pascal / Delphi-Language" verschoben.
|
AW: Auf welches IF (bei mehreren IFs) bezieht sich ein ELSE?
Nimm CnPack, klick auf der "else" und er zeigt dir das if.
|
AW: Auf welches IF (bei mehreren IFs) bezieht sich ein ELSE?
Tipp: Mache nach deinem If-Then ein begin-end, dann weisst du in der Regel wo das else auch zugehört. Ist aber auch ein wenig Geschmackssache aber ich finde das erleichtert vieles in der Lesbarkeit.
Delphi-Quellcode:
Tipp2: Bei deinem Beispiel würde sich eine Case-Anweisung aus meiner Sicht besser eignen:
if a > 0 then
begin if a = 1 then begin ShowMessage('a ist 1'); end else begin ShowMessage('a ist 2'); end; end;
Delphi-Quellcode:
Oder wenn es dir wirklich nur um die Ausgabe des Wertes geht:
Case a of
1 : ShowMessage('a ist 1'); 2 : ShowMessage('a ist 2'); //else //optional // ShowMessage('a ist ' + inttostr(a)); //optional end;
Delphi-Quellcode:
if a > 0 then
begin ShowMessage('a ist ' + inttostr(a)); end; |
AW: Auf welches IF (bei mehreren IFs) bezieht sich ein ELSE?
Zitat:
Delphi-Quellcode:
oder mit Format().
ShowMessage('a ist ', IntToStr(a));
|
AW: Auf welches IF (bei mehreren IFs) bezieht sich ein ELSE?
Habs schon bemerkt gehabt und korrigiert ;) SO ist das wenn man nur mal eben schnell was hin zimmert im Browser XD
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 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-2025 by Thomas Breitkreuz