Dangling else
-
In welchen Programmiersprachen gehört das else nicht zum nächsten vorherigen if (wie bei Java oder C spezifziert) und gibt es Programmiersprachen in welchen das Dangline else Problem nicht im Standard spezifiert sondern Compiler- bzw. Implementierungsabhängig ist?
if (a) if (b) b = c; else a = c;
-
Hallo,
in Basic wird jedes IF durch ein END IF geschlossen, so dass kein dangling else vorkommen kann.
Viele Grüße,
MaBa
-
In Python gehört das else zum If mit der gleiche Einrückung.
-
Ich seh hier nur zwei realistische Möglichkeiten: 1) das else gehört zum direkt vorangehenden if oder 2) diese Mehrdeutigkeit ist syntaktisch ausgeschlossen (wie in Basic oder Python). Ein drittes, dass das else bspw. zum äußeren if gehört, würde ich schon als bösartig einstufen.
-
Hi,
abgesehen vom fehlenden then würde das else in pascal und Delphi zum äußeren if gehören, weil das innere durch das Semikolon abgeschlossen ist.
Aber eigentlihc ist es egal, weil man programmiert ja nie nur für Herrn Compiler, sondern immer auch für den Leser, der das mal wieder ändern oder auch verstehen soll, daher sollte man(n) in so ienem Fall immer durch Klammern (bzw. in pascal begin end) die Sache eindeutig machen.Gruß Mümmel