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 Bedingung am Schleifenanfang, 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 Kassenprogramm, welches 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, dass man so viele Preise eingibt, bis man bestätigt, dass man fertig ist mit der Eingabe. Wir werden das so realisieren, dass eine 0 eingegeben wird, wenn man alle Preise eingegeben hat. Wenn das der User gemacht hat, sollen wieder alle Preise zusammengezählt werden, und wenn eine Kundenkarte vorhanden ist, sollen wieder 5 % vom Gesamtpreis abgezogen werden. Das fertige Ergebnis soll anschließend wieder ausgegeben werden.
/*
* 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 eine 0 eingeben, sodass die Zahlen zusammengezä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, dass man den nächsten Preis eingeben soll.
- In den Zeilen 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, dass eine Kundenkarte vorhanden ist. Wenn ja, werden 5 % Rabatt auf den gesamten Preis gegeben.
Hier geht es zu den bisherigen Teilen der Artikelserie Java: