Seite 1 von 1

if / else - warum ist das nicht das selbe?

Verfasst: 06.08.2020, 16:25
von starcow
Ich stelle grad etwas schockiert fest, dass folgendes ganz offenstlich nicht das selbe ist:

Code: Alles auswählen

if(...) if(...) cout << "bla";
else cout << "blub";
und

Code: Alles auswählen

if(...) {if(...) cout << "bla";}
else cout << "blub";
Ich dachte eigentlich, dass wenn man die geschweiften Klammern bei einer if-Verzweigung weg lässt, dass dann bis zum nächsten Semikolon ausgeführt wird.
Nun scheint der Compiler aber das "else" zur zweiten if-Verzweigung zu zählen. Wieso?

Gruss starcow

Re: if / else - warum ist das nicht das selbe?

Verfasst: 06.08.2020, 16:46
von Alexander Kornrumpf

Re: if / else - warum ist das nicht das selbe?

Verfasst: 06.08.2020, 17:10
von Krishty
Genau. Jeder, der schon mal einen Parser implementieren musste, kennt das Dangling Else :)

Re: if / else - warum ist das nicht das selbe?

Verfasst: 09.08.2020, 14:46
von starcow
Ok, danke euch! :-)