JAVA - Kontrollstrukturen

Zurück zu JAVA
In Java gibts, wie in allen anderen Programmiersprachen, bestimmte Kontrollstrukturen, um den Programmfluss zu steuern.

Die IF-Anweisung:

Syntax: if([Bedingung od. Boolean'scher Wert]){[Anweisungen];}else{[Anweisungen];}
Folgt nach der Bedingung bzw dem ELSE NUR EINE Anweisung, können jeweils die beiden geschwungenen Klammern entfallen.
If-Kurzform: der Ternäre Operator [Bedingung]?[Wert, wenn WAHR]:[Wert, wenn FALSCH]
Diese Kurzform kann man verwenden um z.B. in einer Ausgabeanweisung in einem Rutsch, ohne zusätzliche Befehle zu schreiben, abhängig von einer Bedingung einen String-Ausdruck auszugeben. Allerdings spart die Kurzform KEINE Anweisungn in der internen Abarbeitung des Codes. Die Kurzform wird vom Compiler in eine vollwertige If-Struktur umgesetzt.


Die WHILE-Anweisung:

Syntax:while([bedingung od. Boolean'scher Wert]){[Anweisungen];}
Steht nach dem While NUR EINE Anweisung, können die beiden geschwungenen Klammern entfallen.


Die DO-WHILE-Anweisung:

Syntax:DO{[Anweisungen];}WHILE([Bedingung od. Boolean'scher Ausdruck]);
Die Anweisungen innert der Do-While-Anweisung sollten IMMER zwischen den geschwungenen Klammern stehen. Damit vermeidet man Compiler-Missverständnisse.


Die FOR-Anweisung:

Syntax: FOR([zählervariable(n)];[Laufbedingung];[Beeinflussen der Zählervariable(n)]){[Anweisungen];}
Folgt der For-Anweisung NUR EINE Anweisung, kann man die beiden geschwungenen Klammern weglassen. Man muss die Zählervariablen oder andere Variablen dahingehed beeinflussen, dass die Laufzeitbedingung erfüllt wird. Dem Programmierer sind hier keine Grenzen gesetzt. Bei der For-Schleife Ist bekannt, wann die Laufzeitbedingung erfüllt ist. Dies weiss man bei den While-schleifen nicht. Obwohl man auch eine While-Schleife so programmieren kann, dass sie wie eine For-Schleife wirkt.


Die SWITCH-Anweisung:

Syntax: switch([variable]){case[Ausdruck1]:[Anweisungen];break;case[AusdruckN]:[Anweisungen];break;default:[Anweisungen];break;}
Die Switch-Case Anweisung ist eine klassische Fall-Unterscheidung, mit der man aus mehreren Möglichkeiten die Anweisungen, die im Falle eines bestimmten Ereignisses ausgeführt werden sollen, heraussuchen kann. Die Anweisungen nach den case:-Befehlen müssen nicht eingeklammert werden. die Break-Anweisung sorgt dafür, dass das Programm aus der Switch-Case-Struktur rausfliegt, sobald es die abzuarbeitenden Befehle erledigt hat.


Bedingungen:


Bedingungsausdrücke werden von links nach rechts ausgewertet. Der ternäre Operator ?: wird von rechts nach links ausgewertet. Verknüpft man mehrere Bedingungen mittels ODER (||) oder UND (&&): Der Bedingungsausdruck wird von Links nach rechts gelesen. Bei &&: Die Bearbeitung der Bedingung wird abgebrochen, sobald eine Teilbedingung erreicht wird, die NICHT WAHR ist. Bei ||: Die Bearbeitung der Bedingung wird abgebrochen, sobald eine Teilbedingung erreicht wird, die WAHR ist. Daher muss man bei der Aufstellung der verknüpften Bedingungen sehr sorgfältig planen, denn unter Umständen kann die Position einer Teilbedingung entscheidend sein (Was z.B. passiert wenn diese Teilbedingung NIE überprüft wird, weil sie gar ned erreicht werden kann?).

In Java kann man, im Gegansatz zu C oder C++ in Bedingungen NICHT Rechnen. JAVA erwartet als Bedingung einen Wert WAHR/FALSCH -> eben einen Boolean'schen Wert. In C/C++ kann man in Bedingungs-Ausdrücken auch Rechenoperationen ausführen, die die Bedingungsvariablen beeinflussen, bis die Bedingung wahr oder falsch wird. Dies geht aus folgendem Grund: C/C++ wertet einen Zahlenwert gleich 0 als FALSCH, und alle Werte grösser 0 als WAHR. Diese Eigenheit kann so manchen C/C++-Programmierer, der sich mit der Sprache noch nicht so leicht tut, zur Verzweiflung bringen.

Zurück zu JAVA