MezData-Logo Creative Commons License 448 :PI-BLUEJ: Benzinrechner und Verzweigung

Schlüsselwörter: EVA-Prinzip, Parameter, Struktogramm, Verzweigung, if-Anweisung, if-else-Anweisung

Problem: Ein Programm soll nach Eingabe der gefahrenen Km und der verbrauchten Liter den Spritverbrauch auf 100Km berechnen. 

[Präsentation des Ablaufs]

Java-Quelltext

public class Benzin{
  static double rechneVerbrauch(double liter, double km){
    double verbrauch;
    verbrauch = liter / km * 100;
    return verbrauch;
  }
}

Implementieren und testen Sie das Programm.

Einfügen einer Verbrauchswarnung

Ab einem Verbrauch von 10.0 Litern soll eine Warnung ausgegeben werden

public class Benzin{
  static double rechneVerbrauch(double liter, double km){
    double verbrauch;
    verbrauch = liter / km * 100;
    if (verbrauch > 10.0)
      System.out.println("Verbrauch zu hoch: "+verbrauch);
    return verbrauch;
  }
}

Zweiseitige Verzweigung

Der Benzinrechner soll nun zusätzlich "Noch OK" ausgeben wenn der Verbrauch kleiner gleich 10.0 Litern ist.

public class Benzin{
  static double rechneVerbrauch(double liter, double km){
    double verbrauch;
    verbrauch = liter / km * 100;
    if (verbrauch > 10.0)
      System.out.println("Verbrauch zu hoch: "+verbrauch);
    else
      System.out.println("Noch OK");
    return verbrauch;
  }
}

Allgemeine if-Anweisung

    if (Bedingung)
      Verarbeitung bei true
    else
      Verarbeitung bei false

Bedingung

Die Bedingung ist ein sogenannter Boolscher-Ausdruck er hat nach seiner Auswertung den Wert true oder false Beispiel:

x != 3 wird für x-Werte ungleich 3 true sonst false

Hinweis zu C: In C werden Werte ungleich 0 auch als true gewertet, somit hätte der Ausdruck x - 3 die selbe Wirkung als Bedingung wie x !=3.

In Java müssen Bedingungen vom Typ boolean sein!

Verarbeitung

Es gibt drei Möglichkeiten für Verarbeitung

Beispiel leere Anweisung eine Anweisung Block von Anweisungen
if (Bedingung)
  Verarbeitung
if (Bedingung);
if (Bedingung)
  Anweisung;
if (Bedingung){
  Anweisung 1;
  Anweisung 2;
  ...
  Anweisung n;
}
else
  Verarbeitung
else ;

Hinweis: Hier kann der else-Zweig
weggelassen werden

else
  Anweisung;
else{
  Anweisung 1;
  Anweisung 2;
  ...
  Anweisung n;
}

Verschachtelung von Verzweigungen

Problem: Der Benzinrechner soll in Abhänigkteit des Verbrauchs ausgeben:

Verbrauch in Litern Ausgabe
< 6.0 Sparsam gefahren!
6.0 .. 8.0 Normal
> 8.0 Zu viel Verbrauch!