Java/Algorithmik
Im vorherigen Kapitel wurde beim Tank-Beispiel bereits bemerkt, dass man nur tanken sollte, WENN der Tank noch nicht voll ist. In diesem Kapitel werden wir bedingte Anweisungen einführen, bei denen vor der Ausführung der Anweisungen erst geprüft wird, ob eine oder mehrere Bedingungen erfüllt sind. Mit diesen Kontrollstrukturen können dann auch komplexere Algorithmen modelliert und ausgeführt werden.
Inhaltsverzeichnis
Bedingte Anweisung

Eine bedingte Anweisung ist eine der wichtigsten Bestandteile der Programmierung, da durch sie ein Programm auf unterschiedliche Zustände und Eingaben reagieren kann.
if (Bedingung) {
//Anweisungsblock
…
}
else {
//Anweisungsblock
…
}
Dies ist folgendermaßen zu lesen:
- Wenn die Bedingung eintritt,
dann wird der erste Anweisungsblock ausgeführt; - Sonst wird der zweite Anweisungsblock ausgeführt.
Bedingte Anweisungen können auch verschachtelt werden:
Im folgenden Beispiel ist im else-Zweig der ersten Verzweigung eine weitere Verzweigung untergebracht.
public void prüfeZahl(int pZahl){
if (pZahl >= 10) {
System.out.println(pZahl + " ist zwei oder mehrstellig");
}
else {
if ( pZahl < 0) {
System.out.println(pZahl + "ist negativ.");
}
else {
System.out.println(pZahl + " liegt zwischen 0 und 9.999...");
}
}
}
Online Bank: Bedingte Auszahlung
Die Auszahlung erfolgt nur, wenn es der Kontostand zulässt.
public void auszahlen(double pBetrag){
if (kontostand >= pBetrag) {
kontostand -= pBetrag;
System.out.println("Auszahlung erfolgt: "+pBetrag);
}
else {
System.out.println("Auszahlung verweigert!\nEs fehlen“+(pBetrag-kontostand));
}
System.out.println("Auf Wiedersehen!");
}
Online Bank: Prüfmethode isPositiv()
Die folgende Methode prüft, ob der Kontostand positiv ist.
- Der Rückgabewert der Methode ist vom Typ boolean,
d.h. es wird entweder true oder false zurückgegeben. - Zur kurzfristigen Speicherung wird eine lokale Variable
ergebnis
verwendet.
public boolean isPositiv() {
boolean ergebnis;
if (kontostand > 0) {
ergebnis = true;
}
else {
ergebnis = false;
}
return ergebnis;
}
BMI-Rechner
„Der Body-Mass-Index (BMI) ist eine Maßzahl für die Bewertung des Körpergewichts eines Menschen im Verhältnis zum Quadrat seiner Größe. Der BMI gibt lediglich einen groben Richtwert an und ist nicht unumstritten, da er die Statur eines Menschen und die individuell verschiedene Zusammensetzung des Körpergewichts aus Fett- und Muskelgewebe naturgemäß nicht berücksichtigt. Ebenso ist er für besonders große und besonders kleine Menschen nur eingeschränkt aussagefähig.
Kategorie | BMI (kg/m²) |
---|---|
Starkes Untergewicht | < 17 |
Untergewicht | 17 - 20 |
Normalgewicht | 20 - 25 |
Übergewicht | 25 - 30 |
Starkes Übergewicht | > 30 |
Alter (Jahre) | BMI-Idealwert (kg/m²) |
---|---|
19 - 24 | 19 - 24 |
25 - 34 | 20 - 25 |
35 - 44 | 21 - 26 |
45 - 54 | 22 - 27 |
55 - 64 | 23 - 28 |
> 64 | 24 - 29 |
Operatoren
Vergleichsoperatoren
Um solche Bedingungen zu formulieren, brauchen Sie Vergleichsoperatoren
< (kleiner) > (größer) <= (kleiner gleich) >= (größer gleich) == (gleich mit zwei == Zeichen) != (ungleich)
Logische Operatoren
Wichtige logische Operatoren sind UND, ODER und NICHT.
Wir verwenden sie täglich, wenn wir Aussagen formulieren, häufig in Sätzen mit „Wenn...“:
- Wenn ich eine gute schriftliche UND mündliche Note habe, bekomme ich eine gute Zeugnisnote (d.h. nur wenn beides der Fall ist):
if ((klausurNote <= 2) && (soMiNote <= 2)) ...
- Wenn es regnet ODER die Sonne stark scheint, sitze ich unter einem Schirm (d.h. wenn zumindest eines erfüllt ist. Wenn es regnet und zugleich die Sonne stark scheint, sitze ich natürlich erst recht unter einem Schirm.)
if ((sonneScheint == true) ||(esRegnet == true)) ...
- Wenn es NICHT hell ist, dann geht die Straßenlaterne an.
if (!(helligkeitsSensor > 30)) // ... das ist das gleiche wie: if (helligkeitsSensor <= 30)
|
|
|
Vertiefung:
Weitere Beispiele
Zahlenratespiel
Die kleinste aus 3 Zahlen
Portorechner
Freibadkasse
Rabatt
Kühlhaus
Weblinks
- gailer.net: Entscheidungen treffen
- uhelmich.de: Fallunterscheidungen
- wikibooks.de: Kontrollstrukturen
- Boolesche Algebra