if und else
Betrachten Sie folgenden Code-Ausschnitt:
Wenn Sie dieses Programm laufen lassen, werden Sie die Ausgabe
sehen, und wenn Sie der Variablen zahl den Wert -1 zuweisen, so sehen Sie dies:
Die wesentlichen Schlüsselwörter in diesem Beispiel sind offensichtlich if und else, mit deren Hilfe eine Bedingung geprüft werden kann und das Programm je nach Ergebnis (true oder false) unterschiedlich weiterläuft.
Allgemein lässt sich die Syntax einer if-Anweisung darstellen wie folgt:
Wichtig sind hier wieder einmal die Klammern: Nach dem Schlüsselwort if muss zunächst in runden Klammern die Bedingung abgefragt werden, Anschließend wird mit Hilfe von geschweiften Klammern der Code-Block definiert. Danach folgt das Schlüsselwort else, dessen Code-Block ebenfalls mit geschweiften Klammern gekennzeichnet werden muss.
Wenn es nicht notwendig ist, einen else-Block auszuführen, so kann dieser auch weggelassen werden:
Prinzipiell ist es möglich, in if-Anweisungen auf die geschweiften Klammern zu verzichten, falls der auszuführende Code nur eine Zeile umfasst (wie in obigem Beispiel):
Dies ist jedoch sehr fehleranfällig, denn falls eine weitere Anweisung hinzugefügt wird, müssen die geschweiften Klammern ebenfalls hinzugefügt werden, was gerne - auch von erfahrenen Programmieren - vergessen wird. Daher sollten Sie sich angewöhnen, immer geschweifte Klammern zu benutzen. Eclipse nimmt Ihnen hier wenigstens die Hälfte der Arbeit ab, indem es automatisch eine schließende Klammer setzt, wenn Sie eine öffnene Klammer eingegeben haben und die Return-Taste drücken.
Mit Hilfe von if und else ist es also möglich, den Programmablauf dynamisch zu beeinflussen. Was aber passiert, wenn die Anweisungen in dem jeweiligen Codeblock abgearbeitet wurden?
Wie Sie am ersten Beispiel sehen können, wird anschließend "normal" weitergearbeitet, d.h. es wird der Code ausgeführt, der unter der schließenden Klammer des else-Blocks (bzw. des if-Blocks, wenn der else-Block nicht vorhanden ist) steht - oben war dies die Anweisung .
Innerhalb von if-Blöcken können alle möglichen Java-Anweisungen ausgeführt werden - auch weitere if-Abfragen, d.h. es lassen sich sehr verschachtelte Bedingungen formulieren:
Zudem ist es möglich, die else-Anweisung um ein weiteres if zu erweitern, so dass mehr als zwei Fälle unterschieden werden können:
Solche komplexen Fallunterscheidungen "von Hand", d.h. durch bloßes Ansehen zu verstehen, oder gar einen Fehler in ihnen zu finden, kann recht kompliziert sein.
Debugger
Für nahezu jede Programmiersprache existieren inzwischen sog. "Debugger" die dabei helfen, die Arbeit eines Programms Schritt für Schritt nachzuvollziehen. In der Softwareentwicklung bezeichnet "bug" einen Fehler in einem Programm, und der "Debugger" lässt sich als etwas wie Fehlersuchprogramm übersetzen.
Wird ein Programm im Debug-Modus gestartet, so kann jede einzelne Anweisung im Detail überprüft werden, während gleichzeitig die Werte alles Variablen angezeigt werden, so dass sich ein Fehler in der Programmlogik oft einfacher finden lässt. Der Einsatz eines Debuggers setzt allerdings voraus, dass der Code syntaktisch fehlerfrei ist - würde in einem der obigen Beispiele eine geschweifte Klammer fehlen o.ä., so müsste dieser Fehler zunächst korrigiert werden.
In dem Eclipse-Tutorial Debugger finden Sie eine Anleitung dazu, wie Sie den Debugger von Eclipse benutzen können.