News Ticker

Java 5: Kassen Programm while, do-while Schleife

Heute lernt ihr die While Schleife kennen. Eine While Schleife kann man dafür benützten um eine bestimmte Gruppe von Anweisungen immer wieder ausführen zu lassen bis eine davor festgelegte Bedingung erfüllt ist.
Eine While Schleife sieht vom aufbau so aus:

While (Bedingung)
{
Anweisung 1;
Anweisung 2;
Anweisung 3;
etc.
}

Zu einer While Schleife sagt man auch Kopfgesteuerte Schleife, weil die Bedingungn am Schleifen Anfang also im Kopf steht. Jetzt fragt ihr euch bestimmt gibt es dann auch eine Fußgesteuerte Schleife. Eure Vermutung ist richtig. Hier seht ihr wie diese aufgebaut ist:

do {
Anweisung 1;
Anweisung 2;
Anweisung 3;
} while (Bedingung);

Jetzt kennt ihr schon verschiedene Schleifen. es gibt noch etwas weiteres was oft benötigt wird und zwar die Umwandlung von einem String in ein Int oder von einem String in ein Double etc.

Hier seht ihr wie ihr diese Operationen durchführen könnt.

Befehl Aufgabe Beispiel
Integer.Parse() String –> Int int echteZahl;

string zahlAlsString=”123”;

echteZahl = Integer.parseInt(zahlAlsString );

Double.Parse() String –> Double double echteZahl;

string ZahAlsString=”123.22”;

echteZahl = Double.parseDouble(zahlAlsString );

String.valueOf() Verschiedene Typen –> String Int eineZahl=100;

string zahlAlsString = String.valueOf(eineZahl);

Jetzt erweitern wir das Kassen Programm welche wir im 4. Tutorial geschrieben haben. Man soll jetzt nicht nur noch eine feste Anzahl an Preisen Eintragen können. Es soll jetzt möglich sein das man so viele Preise ein gibt bis man bestätigt das man Fertig ist mit der Eingabe. Wir werden das so realisieren das eine 0 eingegeben wird wenn man alle Preise eingegeben hat. Wenn das der User gemacht hat sollen wieder alle Preise zusammen gezählt werden und wenn eine Kundenkarte vorhanden ist sollen wieder 5 % vom Gesamtpreis abgezogen werden. Das fertige Ergebnis soll anschließend wieder ausgegeben werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
package kasse_while;
import java.io.BufferedReader;
import java.io.InputStreamReader;
 
/**
 *
 * @author Andreas
 */
public class Main {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
 
       System.out.println("Besitzt der Kunde eine Kundenkarte? (Ja=1, Nein=0)");
       try {
       BufferedReader input=new BufferedReader (new InputStreamReader (System.in));
       String kundenkarte;
       kundenkarte = input.readLine();
       double kundekarte_double;
       kundekarte_double=Double.parseDouble(kundenkarte);
 
       System.out.println("Bitte geben Sie den ersten Preis ein");
       String preis1;
       preis1 = input.readLine();
       double preis1_double;
       preis1_double=Double.parseDouble(preis1);
 
       double gesamtbetrag = 0;
       while (preis1_double>0)
       {
       gesamtbetrag = gesamtbetrag + preis1_double;
       System.out.println("Bitte geben Sie den nächsten Preis ein");
       preis1 = input.readLine();
       preis1_double=Double.parseDouble(preis1);
       }
 
       double endbetrag;
 
       if (kundekarte_double==1)
       {
       endbetrag = gesamtbetrag * 0.95;
       }
       else
       {
       endbetrag = gesamtbetrag;
       }
 
       System.out.println("Bitte zahlen Sie : " +endbetrag+ " €");
 
       }
       catch (Exception ex)
       {
       System.out.println("Fehlerhafte eingabe");
       }
 
        // TODO code application logic here
    }
 
}

  • Bis zur Zeile 35 solltet ihr eigentlich alles schon kennen.
  • In der Zeile 36 wird die Bedingung der While Abfrage gemacht. Es wird abgefragt ob der Inhalt der Variablen preis1_double größer als 0.0 ist. Denn wir hatten ja gesagt wenn man keine Preise mehr eingeben muss soll man das man eine 0 eingeben so das die Zahlen zusammen gezählt werden. Jetzt wird die Schleife so oft durchlaufen bis der User eine 0 eingibt.
  • In der Zeile 38 wird zur Variablen gesamtbetrag preis1_double addiert. Das Ergebnis speichert man anschließend wieder in der Variablen gesamtbetrag. So kann man sehr einfach immer die neue Eingabe zum Gesamtergebnis Hinzuzählen.
  • In der Zeile 39 wird wieder ausgegeben das man den nächsten Preis eingeben soll.
  • In der Zeile 40 und 41 wird der Preis eingelesen und in ein Double umgewandelt.
  • Das Ende ist wieder wie bei dem Kassenprogramm aus dem Tutorial Nr. 4. Es wird überprüft ob eingegeben wurde das eine Kundenkarte vorhanden ist wenn ja wird 5 % Rabatt auf den Gesamten Preis gegeben.

Hier geht es zu den bisherigen Teilen der Artikelserie Java:

Java 1: Netbeans die ersten Schritte und Hello World

Java 2: Rechnen mit Variablen

Java 3: Werte einlesen, zwischenspeichern und wieder ausgeben

Java 4: Kassen Programm mit if Abfrage