CodeGym /Kurse /JAVA 25 SELF /Bedingte Anweisung: if else

Bedingte Anweisung: if else

JAVA 25 SELF
Level 3, Lektion 1
Verfügbar

1. Die Anweisung if else

Programme wären wenig nützlich, wenn sie immer dasselbe täten, unabhängig davon, wie sich die äußeren Umstände ändern. Ein Programm muss sich an verschiedene Situationen anpassen können und in manchen Fällen das eine, in anderen Fällen etwas anderes tun.

In Java ist das mithilfe der bedingten Anweisung umgesetzt – den Schlüsselwörtern if und else, die es erlauben, unterschiedliche Blockanweisungen abhängig von der Wahrheitswertigkeit einer Bedingung auszuführen.

Die bedingte Anweisung besteht aus drei Teilen: Bedingung, Anweisung 1 und Anweisung 2. Wenn die Bedingung wahr ist, wird die Anweisung 1 ausgeführt, andernfalls wird die Anweisung 2 ausgeführt. Die Anweisungen werden niemals gleichzeitig ausgeführt. Allgemein sieht diese Anweisung so aus:


if (condition)
   command1;
else
   command2;
Bedingte Anweisung if-else

if wird als „wenn“ übersetzt, und else als „sonst“. In Alltagssprache lässt sich das so formulieren:


If condition true, then
   execute command1;
else
   execute command2;
Die bedingte Anweisung if-else in Alltagssprache

Beispiele:

// Auf dem Bildschirm wird ausgegeben: Sie sind noch ein Kind

int age = 17;
if (age < 18)
   System.out.println("Sie sind noch ein Kind");
else
   System.out.println("Sie sind bereits erwachsen");
// Auf dem Bildschirm wird ausgegeben: Warm

int temperature = 5;
if (temperature < 0)
   System.out.println("Draußen herrscht Frost");
else
   System.out.println("Warm");
// Auf dem Bildschirm wird ausgegeben: Sie können den Führerschein machen

int age = 18;
if (age == 18)
   System.out.println("Sie können den Führerschein machen");
else
   System.out.println("Sie können für ein Authen sparen");

2. Blockanweisung

Wenn Ihre Programm bei erfüllter (oder nicht erfüllter) Bedingung mehrere Anweisungen ausführen soll, können Sie diese zu einem Block zusammenfassen.

Um Anweisungen zu einem Block zusammenzufassen, müssen Sie sie in geschweifte Klammern „einschließen“. So sieht das im Allgemeinen aus:


{
   command1;
   command2;
   command3;
}

Die Anzahl der Anweisungen in einem Block ist beliebig – auch null ist möglich.

Beispiele für die Kombination der Anweisung if-else mit einem Block:

// Auf dem Bildschirm wird ausgegeben: Du bist noch ein Kind. Streite nicht mit Erwachsenen

int age = 17;
if (age < 18)
{
   System.out.println("Du bist noch ein Kind");
   System.out.println("Streite nicht mit Erwachsenen");
}
else
{
   System.out.println("Sie sind bereits erwachsen");
   System.out.println("Ach, diese Jugend heutzutage");
}
// Auf dem Bildschirm wird ausgegeben: Warm

int temperature = 5;
if (temperature < 0)
{
   System.out.println("Draußen herrscht Frost");
   System.out.println("Setz eine Mütze auf");
}
else
   System.out.println("Warm");
// Wird ein leerer Block ausgeführt. Auf dem Bildschirm wird nichts ausgegeben. 

int age = 21;
if (age == 18)
   System.out.println("Sie können den Führerschein bekommen");
else
{
}

3. Verkürzte Syntax der if-Anweisung

Wenn im Block else kein Code steht, kann man ihn weglassen. Dann hat die if-Anweisung die Form:


if (condition)
{
    command1;
}
Bedingte Anweisung if

Beispiel:

int age = 19;
if (age >= 18)
{
    System.out.println("Sie sind volljährig!");
}

Wie funktioniert das?

Wenn die Bedingung wahr ist, wird der Codeblock ausgeführt. Wenn sie falsch ist, passiert nichts – das Programm läuft einfach weiter.

Der else-Block ist im Programm zwar vorhanden, aber leer (zwischen den geschweiften Klammern stehen keine Anweisungen). Man kann ihn einfach entfernen – am Verhalten des Programms ändert sich nichts.

4. Kombination von Bedingungen: else if

Manchmal reicht nicht nur „ja/nein“, sondern man wählt aus mehreren Varianten. Hier hilft die Kombination else if:

if (condition1)
{
    // Wird ausgeführt, wenn condition1 wahr ist
}
else if (condition2)
{
    // Wird ausgeführt, wenn condition2 wahr ist und condition1 falsch ist
}
else
{
    // Wird ausgeführt, wenn keine der obigen Bedingungen zutrifft
}

Beispiel:

int hour = 13;
if (hour < 12)
{
    System.out.println("Guten Morgen!");
}
else if (hour < 18)
{
    System.out.println("Guten Tag!");
}
else
{
    System.out.println("Guten Abend!");
}

Was passiert hier?

  • Wenn es vor 12 Uhr ist – Morgen.
  • Wenn zwischen 12 und 18 Uhr – Tag.
  • Wenn später – Abend.
  • Das Programm wählt nur EINE Variante! Sobald eine Bedingung passt, werden die restlichen nicht einmal mehr geprüft.

5. Schematische Illustration: Verzweigungs-Flowchart

So sieht es als Blockschema aus:

Und wenn es mehrere Bedingungen gibt:

Das erinnert sehr an Abzweigungen in Pen-&-Paper-Rollenspielen: gehst du nach links – das eine, nach rechts – das andere, geradeaus – noch etwas!

6. Welche Bedingungen kann man prüfen?

In den runden Klammern nach if muss ein LOGISCHER Ausdruck stehen – dessen Ergebnis true oder false ist.

Wesentliche Vergleichsoperathenren:

Operathenr Bedeutung Beispiel
==
Gleich
x == 5
!=
Ungleich
x != 10
>
Größer als
x > 0
<
Kleiner als
age < 18
>=
Größer oder gleich
score >= 100
<=
Kleiner oder gleich
count <= 50

Beispiele für Bedingungen:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Beachten Sie: = (ein Zeichen) – das ist eine Zuweisung. == (zwei Zeichen) – das ist ein Vergleich. Das ist einer der häufigsten Fehler unter Anfängern! Wenn Sie versehentlich schreiben:

if (x = 5) // FEHLER!

– der Compiler wird Sie zurecht darauf hinweisen.

7. Arbeit mit Strings in Bedingungen

Der Vergleich mit == funktioniert in Java korrekt für Zahlen. Gleitkommazahlen sollte man nicht mit == vergleichen, und Strings darf man nicht mit == vergleichen – für Strings verwenden Sie die Methode equals(), die die Inhalte der Strings vergleicht (und nicht die Referenzen).

Mehr über die Feinheiten des String-Vergleichs besprechen wir später. Wie man Strings korrekt vergleicht – im folgenden Beispiel:

String password = console.nextLine();
if (password.equals("qwerty"))            // wir rufen die Methode equals() auf und übergeben den zweiten String
{
    System.out.println("Sie sind eingeloggt!");
}

8. Besonderheiten und Nuancen:

Geschweifte Klammern: nötig oder nicht?

Wenn nach if oder else nur eine Anweisung steht, können die geschweiften Klammern weggelassen werden:

if (age > 18)
    System.out.println("Sie sind über 18!");

// Aber sicherer ist es, sie IMMER zu schreiben:
if (age > 18)
{
    System.out.println("Sie sind über 18!");
}

Tipp: Schreiben Sie stets mit Klammern. Das schützt vor vielen Fehlern, insbesondere wenn der Code erweitert wird.

Logische Fehler: Seien Sie aufmerksam bei Bedingungen!

Wenn Sie so schreiben:

if (age > 18)
    System.out.println("Sie sind über 18!");
    System.out.println("Willkommen!");

Dann liest der Compiler diesen Code so:

if (age > 18)
{
    System.out.println("Sie sind über 18!");
}

System.out.println("Willkommen!");

Die zweite Zeile wird immer ausgeführt – Klammern sind nötig, damit beide Zeilen im „Zweig“ liegen.

1
Aufgabe
JAVA 25 SELF, Level 3, Lektion 1
Gesperrt
Ticketkauf im Kino 🎬
Ticketkauf im Kino 🎬
1
Aufgabe
JAVA 25 SELF, Level 3, Lektion 1
Gesperrt
Wettercheck draußen ❄️
Wettercheck draußen ❄️
1
Aufgabe
JAVA 25 SELF, Level 3, Lektion 1
Gesperrt
Konto entsperren 🔒
Konto entsperren 🔒
1
Aufgabe
JAVA 25 SELF, Level 3, Lektion 1
Gesperrt
Begrüßung nach Tageszeit ☀️
Begrüßung nach Tageszeit ☀️
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION