Javaschubla.de - Java als erste Programmiersprache

Vergleiche und Bedingungen

Größer und kleiner als, if und else

Zahlen kann man in Java fast genau so vergleichen wie in der Mathematik, mit <, >, <= und >= (Reihenfolge beachten, das = kommt als Zweites, kein Leerzeichen innerhalb eines Operators, der aus mehr als einem Zeichen besteht).

Mit if (wenn) notiert man bedingte Anweisungen:

    if (Bedingung)
    {
      Anweisungen
    }

Mit else (sonst) definiert man die alternative Anweisung:

    if (Bedingung)
    {
      Anweisungen
    }
    else
    {
      Anweisungen, wenn die Bedingung nicht erfüllt ist
    }

Beispiel:

    int a = 1;
    if (a < 3)
    {
      System.out.println("a ist kleiner als 3");
    }

Beispiel:

    int alter = 17;
    if (alter >= 18)
    {
      System.out.println("Hier ist der Wodka!");
    }
    else
    {
      System.out.println("Zu jung - kein Wodka für dich!");
    }

Anmerkung: Wenn du das Programm unter Windows, also im DOS-Fenster ausführst, wirst du sehen, dass das 'ü' in "für" nicht korrekt dargestellt wird. Das liegt daran, dass DOS kein richtiges ASCII benutzt. Unter Linux wird es korrekt dargestellt. Man könnte nun das DOS-Zeichen für ü benutzen, aber dann wäre es unter Linux falsch. Die einzige Möglichkeit, es auf Windows und Linux korrekt anzuzeigen ist "ue" zu schreiben. Aber keine Sorge, bei GUI-Programmen gibt es dieses Problem nicht.

Was, wenn wir mehr als zwei Fälle haben, z.B. unter 16 für keinen Alkohol, größergleich 16 aber kleiner als 18 für Bier und größergleich 18 für Wodka? Man kann in den else-Teil einfach noch ein weiteres if einbauen:

    int alter = 17;
    if (alter >= 18)
    {
      System.out.println("Hier ist der Wodka!");
    }
    else
    {
      if (alter >= 16)
      {
        System.out.println("Du bekommst Bier!");
      }
      else
      {
        System.out.println("Du bist zu jung, hier hast du eine Cola!");
      }
    }

Man kann das innere if auch direkt hinter das else schreiben und spart sich so ein Paar geschweifte Klammern und eine Einrückung:

    int alter = 17;
    if (alter >= 18)
    {
      System.out.println("Hier ist der Wodka!");
    }
    else if (alter >= 16)
    {
      System.out.println("Du bekommst Bier!");
    }
    else
    {
      System.out.println("Du bist zu jung, hier hast du eine Cola!");
    }

Gleichheit und Ungleichheit, "nicht"

Auf Gleichheit vergleicht man mit == (daran denken, = ist eine Zuweisung, kein Vergleich), auf Ungleichheit mit !=. Ein Ausrufezeichen steht immer für "nicht".

Beispiel:

    int i1 = 7;
    int i2 = 2;
    double d = i1/i2; // Integerdivision -> ergibt 3
    if (d == 3)
    {
      System.out.println("es kommt 3 heraus");
    }

Beispiel:

    int i = 5;
    if (i != 2)
    {
      System.out.println("i ist nicht 2");
    }

Ein Beispiel für ! ohne = :

    int a = 2;
    if (! a > 8)
    {
      System.out.println("a ist nicht größer als 8");
    }

AND und OR

Das Symbol für AND (logisches UND) ist &&. Das Symbol für OR (logisches ODER) ist || (Alt Gr + < auf einer deutschen Tastatur).

Beispiel:

    int zahl = 12;
    if (zahl > 6 && zahl < 18)
    {
      System.out.println("liegt zwischen 6 und 18");
    }

Beispiel:

    int zahl = 12;
    if ( zahl % 2 == 0 || zahl % 5 == 0)
    {
      System.out.println("ist durch 2 oder durch 5 teilbar oder beides");
    }

Zur Erinnerung: zahl % n berechnet den Rest von zahl bei Teilung durch n.


In der nächsten Lektion geht es um Strings.