Java Semikolon nach Bedingungen (while Schleife)?
Hallo, weiß jemand warum bei einer While-Schleife nach der Bedingung kein Semikolon hin darf?
Ich verstehe irgendwie den Zusammenhang mit Semikolons und geschweiften Klammern noch nicht da die sich anscheinend immer gegenseitig beeinflussen.
LG
6 Antworten
![](https://images.gutefrage.net/media/user/surbahar53/1478861575167_nmmslarge__317_41_738_738_116d65088374878b2332a298d555bbfb.jpg?v=1478861577000)
Syntax : while (bedingung) { anweisung ; }
Dass nach der Bedingung kein Semikolon folgt, ist einfach eine Sprachkonvention, die mal so festgelegt wurde.
Man hätte die Konvention auch so formulieren können
while (bedingung) ; { anweisung ; }
Aber wozu soll man das machen, das Semikolon nach der Bedingung ist semantisch gesehen überflüssig.
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
Es ist nicht überflüssig, aber so kannst du einen rätselhafter Fehler bekommen. Warum lauft der Kern immer einmal?
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
Das wäre ein leerer Befehl. Java erkennt nicht, dass es das ignorieren müsste, und der Kern selbst steht darunter.
Also wenn du das Semikolon hinlegst, dann bekommst du einen leeren Kern, der absolut richtig ist, so bekommst du keinen Fehler. Dafür musste man einen Checker schreiben, aber ich kenne das nur für C++, und beschränkt für C.
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Weil die While-Schleife noch über mehrere Zeilen hinausgeht und nicht in derselben Zeile aufhört. Die Klammer markieren für den Compiler den Anfang und das Ende.
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
Weil das halt so ist :)
Es handelt sich um eine Bedingung, daher kommen geschweifte Klammern.
![](https://images.gutefrage.net/media/user/phigeek/1495093038262_nmmslarge__94_66_306_306_d1823db646ce5b7810495140af058619.png?v=1495093038000)
Suche hier mal nach dem Begriff "Semikolon". Vielleicht reicht Dir die Antwort dort schon?