Moin,
Was soll mir jetzt dein Artikel sagen?
Daß man Wörter wie ‚absolut sicher‘ nur benutzen sollte, wenn man sich absolut sicher ist.
Ich kann halt noch nicht so toll programmieren wie du!
Du weißt garnicht, wie toll ich programmieren kann. Ich habe auch nur eine kurze spitze Bemerkung gemacht, weil Du Dir absolut sicher warst. Kein Grund zur Aufregung.
Aber an dem Inhalt meiner Aussage ändert sich nichts: Nur die
korrekt(!) geklammerte Version ist absolut sicher, weil eben
ein else immer zum letzten else-losen if gehört …
Schaun wa mal: Wenn Du tatsächlich s/elseif/else if/g benutzt, also blind ersetzt, bekommst Du folgende Struktur:
if (Bedingung1)
Block
else if (Bedingung2)
Block
else if (Bedingung3)
Block
else
Block
Der Vorteil von C (zB. im Gegensatz zu Perl) ist nun, daß nach if oder else ein beliebiger Ausdruck folgen kann, also auch eine neue if…else-Gruppe. Da aber die gesamte if-else-Gruppe genau ein Ausdruck ist, landet jedes else automatisch beim richtigen if.
Das kannst Du mit Klammern unterstützen, wenn Dir das lieber ist, aber Du siehst ja, was dabei herauskommen kann. Ich möchte denn auch meine andere Nachricht einschränken: In einer solchen Struktur würde ich nur für die Blöcke Klammern benutzen (da aber auf jeden Fall, auch wenn der Block nur einen Ausdruck enthält), nicht für die geschachtelten ifs. Dadaurch bekommt man genau das, was man erwartet.
Thorsten