Vergleichs- und logische Operatoren kommen häufig dann zum Einsatz, wenn man etwas nur unter einer bestimmten Bedingung ausführen soll.
Gegeben: int a = 3; int b = 3;
int a = 3; int b = 3;
==
a == b
true
!=
a != b
false
>
a > b
>=
a >= b
<
a < b
<=
a <= b
* nur bei primitiven Datentypen. Nicht bei String!
String
Gegeben: boolean a = true; boolean b = false;
boolean a = true; boolean b = false;
&&
a && b
||
a || b
^
a ^ b
!
boolean
!b
Wird dafür verwendet, Bedingungen zu überprüfen
Als Bedingung dient ein Bool'scher Wert (true, false), welche über ein Vergleichsoperator erzeugt wird.
Kontrolliert ob ein Codeabschnitt durchlaufen wird
Wenn, if, ein Kunde einen Auftrag über 1000.-- erteilt, bekommt er 4 % Rabatt.
if
double price = StdInput.readDouble(); if (price > 1000) { price *= 0.96; } System.out.println("Your price " + price);
price > 1000
price *= 0.96
price = price * 0.96
Mit else if kann priorisiert auf weitere Bedingungen reagiert werden
else if
if (<Bedingung1>) { <Anweisung1> } else if (<Bedingung2>) { // Optionaler Block <Anweisung2> } else { // Optionaler Block <Anweisung3> }
int age; // beliebiges alter double betrag; // beliebiger Betrag if (betrag > 10000 && age < 18) { // mehr als 10000 ausgegeben // UND unter 18 Jahre alt betrag *= 0.9; } else if(betrag > 1000) { betrag *= 0.96; } else { // Für alle andern betrag *= 0.98; }
Wird dafür verwendet, Gleichheit zu überprüfen
Als Bedingung dient die exakte Gleichheit von Werten (==)
Mit break wird abgebrochen
break
Ohne break wird die nächste Anweisung auch ausgeführt
switch(wert) { case vergleichsWert1: <Anweisung1>; // ohne `break` wird auch <Anweisung2> // bis zum `break` ausgeführt. case vergleichsWert2: <Anweisung2>; break; default: <StarndardAnweisung>; }
case
switch(kunde) { case "Hans": System.out.println("Hallo Hans!"); case "Fritz": System.out.println("wie goots?"); break; default: System.out.println("Ciao"); } }