Java: Abfragen / Verzweigungen
Abfragen (auch Verzweigungen genannt) bewirken, dass Anweisungen oder Anweisungsblöcke nur dann ausgeführt werden, wenn bestimmte Bedingungen erfüllt sind, andernfalls werden sie übersprungen.If-Anweisung
if
heißt "wenn". Auf unseren Roboter angewendet, könnte das heissen: Wenn du noch keine 3 Autos genommen hast, nimm eins, oder: Wenn du Spielzeugautos vom Typ "BMW" hast, such die Schachtel "BMW".Der Programmcode dazu könnte so aussehen:
if (AutosGenommen < 3) NimmAuto;
Oder:if (AutoAktuell.Marke == "BMW") SucheSchachtel("BMW");
Der Text hinter demif
steht in Klammern. Es ist ein Vergleich im Sinne einer Frage: Ist AutosGenommen
kleiner 3? Wenn Ja (true), nimm noch ein Auto, sonst nicht. Das heißt, die Anweisung NimmAuto
soll nur dann ausgeführt werden, wenn die Bedingung, die in der Klammer hinter if
steht, erfüllt ist. Wenn nicht, dann überspringe die Anweisung NimmAuto
und mach bei der nächstfolgenden weiter. Die Zeile mit dem if
darf nicht mit Semikolon abgeschlossen werden. Sie ist nämlich keine Anweisung. Die Anweisungen danach werden nur ausgeführt, wenn die Bedingung erfüllt ist.Wenn eine Bedingung nicht erfüllt ist, soll oft nicht nur eine Anweisung übersprungen werden, sondern eine ganze Gruppe. Man spricht dann von einem Anweisungsblock. Blöcke werden in geschweifte Klammern eingefasst:
AnweisungVorDemBlock;
if (Variable == Wert)
{
Anweisung1; // 1.Anweisung des Blocks
Anweisung2; // 2.Anweisung des Blocks
Anweisung3; // 3.Anweisung des Blocks
}
AnweisungNachDemBlock;
AnweisungVorDemBlock; Anweisung1; Anweisung2; Anweisung3; AnweisungNachDemBlock;
Wenn die Bedingung nicht erfüllt ist:
AnweisungVorDemBlock; AnweisungNachDemBlock;
Else-Anweisung
Manche Anweisungen oder Anweisungsblöcke sollen nur dann ausgeführt werden, wenn die Bedingung nicht erfüllt ist. Das regelt man mitelse
if (BedingungErfüllt)
TuDies;
else
TuJenes;
InJedemFallMachHierWeiter;
if
und else
wirken also wie Weichen bei der Eisenbahn: Je nachdem, wie die Bedingungen erfüllt sind oder nicht, "verzweigt" es dann jeweils zu dem "if
-Zweig" oder dem "else
-Zweig".Bedingungen können auch "verschachtelt" werden:
if (SindNochAutosDa)
{
if (AutosGenommen < 3)
NimmAuto;
else
PackeAutosEin;
}
Switch-Anweisung
Wenn mehr als 2 Verzweigungen zur Auswahl stehen, ist dieswitch
-Anweisung unter Umständen effektiver:
switch ( WochentagNr )
{
case 1:
Montagsaufgabe;
break;
case 2:
Dienstagsaufgabe;
break;
...
default:
IchHabefrei;
}
Wochentagnr == 1
ist, wird die Montagsaufgabe
ausgeführt. break
bedeutet, dass dann die restlichen Anweisungen des Blocks übersprungen werden können. Wenn Dienstag ist, stößt Java auf case 1
und stellt fest, dass die Bedingung nicht erfüllt ist. Es sucht also nach dem nächsten case
. Bei case 2
ist die Bedingung erfüllt, deshalb wird die Anweisung Dienstagsaufgabe
ausgeführt und dann, aufgrund von break
, nach dem switch
-Block fortgesetzt. Wird kein zutreffender case
-Wert gefunden, dann zieht default
(Standard). Allerdings können nach
switch
und case
nur Ausdrücke auf Werte abgeprüft werden, deren Datentyp sich in int
casten lassen. default
kann auch weggelassen werden.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Struktur des Programmcodes
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project