Skip to main content

Java Übung 15 – Besuche den Java Schwimmkurs

In dieser Java Übung geht es noch einmal um das switch case statement.

Und es geht um Eintrittspreise im Schwimmbad.
Diese Eintrittspreise sind gestaffelt nach dem Wochentag, welchem du im Schwimmbad verbringst.

Am Tag 1 bezahlst du 4,5 Euro.
Am Tag 2 bist du bei 6 Euro.
Am Tag 3 kostet es 7 Euro
Und Tag 4 bis 7 kosten die Tageskarten 8 Euro.

Schreibe eine Methode, namens „berechnePreis“.
Diese Methode erwartet zwei Argumente.
Das erste Argument ist eine Zahl.
Diese Zahl entspricht dem Wochentag. Also 1 bis 7.

Das zweite Argument ist ein boolean.
Was wertet dieser aus?
Wenn dieser wahr ist, dann bist du nicht nur diesen einen Tag im Schwimmbad.
Nein du bist die darauffolgenden Tage ebenfalls da.

Das heißt.
Wenn du der Methode Tag 4 übergibst und den Wert „true“.
Dann bedeutet das: Du bist am Tag 4, Tag 5, Tag 6 und Tag 7 im Schwimmbad.
Die Methode darf dann nicht aus dem switch-Block herausspringen.

Anders ist es, wenn false übergeben wird.
Dann soll die Methode aus dem Block herausspringen und dir nur noch den Preis von diesem einen Tag zurückgeben.

Egal ob true oder false:
Die Methode soll zum Schluss die entsprechenden Gesamtpreise zurückgeben.

Löse diese Java Übung mit dem Switch-Case-Statement.
Und setze dafür gezielt die break-Anweisung ein.

PS.
Alle Werte, welche größer als 7 sind, soll die Methode abfangen.
Dann erscheint die Anzeige „An diesem Tag- Leider geschlossen.“


Bevor du diese Java Übung lösen kannst, lege eine Klasse an

Ich nenne meine Klasse schlichtweg Schwimmbad.

Die Parameterliste der Java Methode erwartet zwei Argumente.

  • boolean „mehrereTage“
  • int „ersterTag“

Die Preise führe ich als lokale Variablen vom Datentyp double.

So würde die Methode erst einmal aussehen:


public class Schwimmbad {
 
static void berechnePreis(boolean mehrereTage, int ersterTag) {
double preisTag1 = 4.5;
double preisTag2 = 6;
double preisTag3 = 7;
double preisTag4 = 8;
double gesamtpreis = 0;
}
}

Als nächstes sollte der boolean Wert überprüft werden.
if (mehrereTage == false)
Wenn dieser false ist, dann wird nur der eine Tag abgerechnet.
Also switche dann das Argument ersterTag und vereinbare die entsprechenden Cases.
Wichtig ist die Breakanweisung.

Denn jetzt soll jedes Mal genau der eine Tageswert zurückgeben und dann aus der Methode gesprungen werden.


public class Schwimmbad {
 
static void berechnePreis(boolean mehrereTage, int ersterTag) {
double preisTag1 = 4.5;
double preisTag2 = 6;
double preisTag3 = 7;
double preisTag4 = 8;
double gesamtpreis = 0;
if (mehrereTage == false) {
switch (ersterTag) {
case 1:
System.out.println("Tag 1 - Preis: " + preisTag1);
gesamtpreis = preisTag1;
break;
case 2:
System.out.println("Tag 2 - Preis: " + preisTag2);
gesamtpreis = gesamtpreis + preisTag2;
break;
case 3:
System.out.println("Tag 3 - Preis: " + preisTag3);
gesamtpreis = gesamtpreis + preisTag3;
break;
case 4:
System.out.println("Tag 4 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
case 5:
System.out.println("Tag 5 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
case 6:
System.out.println("Tag 6 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
case 7:
System.out.println("Tag 7 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
default:
System.out.println("An diesem Tag- Leider geschlossen.");
break;
}
}
System.out.println("Gesamtpreis: " + gesamtpreis);
}
 
public static void main(String[] args) {
berechnePreis(false, 3);
}
}

Die Methode hakt in den entsprechenden Case ein und führt die Anweisungen aus.
Der Gesamtpreis wird zwar jedes Mal berechnet.

Aber dieser ergibt sich aus dem Tagespreis und dem Wert 0.

Jetzt lass uns die true-Werte anschauen.
Also else Bedingung setzen.
Cases vereinbaren
Und keine break-Anweisung einsetzen.


public class Schwimmbad {
 
static void berechnePreis(boolean mehrereTage, int ersterTag) {
double preisTag1 = 4.5;
double preisTag2 = 6;
double preisTag3 = 7;
double preisTag4 = 8;
double gesamtpreis = 0;
if (mehrereTage == false) {
switch (ersterTag) {
case 1:
System.out.println("Tag 1 - Preis: " + preisTag1);
gesamtpreis = preisTag1;
break;
case 2:
System.out.println("Tag 2 - Preis: " + preisTag2);
gesamtpreis = gesamtpreis + preisTag2;
break;
case 3:
System.out.println("Tag 3 - Preis: " + preisTag3);
gesamtpreis = gesamtpreis + preisTag3;
break;
case 4:
System.out.println("Tag 4 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
case 5:
System.out.println("Tag 5 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
case 6:
System.out.println("Tag 6 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
case 7:
System.out.println("Tag 7 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
default:
System.out.println("An diesem Tag- Leider geschlossen.");
break;
}
} else {
switch (ersterTag) {
case 1:
System.out.println("Tag 1 - Preis: " + preisTag1);
gesamtpreis = preisTag1;
case 2:
System.out.println("Tag 2 - Preis: " + preisTag2);
gesamtpreis = gesamtpreis + preisTag2;
case 3:
System.out.println("Tag 3 - Preis: " + preisTag3);
gesamtpreis = gesamtpreis + preisTag3;
case 4:
System.out.println("Tag 4 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
case 5:
System.out.println("Tag 5 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
case 6:
System.out.println("Tag 6 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
case 7:
System.out.println("Tag 7 - Preis: " + preisTag4);
gesamtpreis = gesamtpreis + preisTag4;
break;
default:
System.out.println("An diesem Tag- Leider geschlossen.");
break;
}
}
System.out.println("Gesamtpreis: " + gesamtpreis);
}
 
public static void main(String[] args) {
berechnePreis(false, 3);
}
}

Aufgrund des fehlenden Breaks, springt das Programm in den entsprechenden Case und führt diesen und alle nachfolgenden aus.
Der entsprechende Gesamtpreis durchläuft auch alle Fälle und wird somit immer wieder erhöht.

Und dann ganz zum Schluss bekommst du den Gesamtpreis zurückgegeben.
Cool oder. 🙂


Ähnliche Beiträge

Java Binärzahl in Dezimalzahl umwandeln – So geht’s.

Java-Binärzahl-umrechnen

Erinnerst du dich? In einer der letzten Beiträge haben wir uns die Zusammenhänge zwischen dem dualen und dem dezimalen Zahlensystem angeschaut. Aber wir haben noch keine Java Binärzahl in eine Dezimalzahl verwandelt. Zumindestens nicht praktisch…. Stattdessen…. Haben wir festgestellt, dass beide Zahlensysteme im Grunde genommen sehr ähnlich sind. Beim Dezimalsystem spielt die Zahl 10, als […]

Eine Java Konsoleneingabe machst du über den Scanner

Es wird Zeit für die erste Java Konsoleneingabe. Und diese Eingaben machst du über den Java Scanner. Was ist das? Der Scanner ist eine vorgefertigte Java Klasse, welche Java mit seiner API anbietet. Das heißt du musst nichts selbst erschaffen. Du musst nur wissen, wie du darauf zugreifst. Erst einmal musst du einen Scanner anlegen. […]

So kannst du Werte aus zwei oder mehreren Java Arrays verrechnen.

Java Arrays verrechnen

Wie kann man Werte aus zwei oder mehreren Java Arrays miteinander verrechnen? Zum Beispiel: Du möchtest alle Werte des ersten Arrays mit allen Werten des zweiten Arrays addieren Oder du möchtest die Summe aus beiden Arrays wissen und erst dann diese miteinander addieren. Was erwartet dich in diesem Beitrag? Zuerst werde ich dir zeigen, wie […]

Die drei Bestandteile aller Java Klassen

Java Klassen Bestandteile

Java ist eine objektorientierte Programmiersprache. Was heißt das? Ja… Anscheinend hat es etwas mit Objekten zu tun. Also was ist ein Objekt? Ein Objekt ist ein bestimmtes Konstrukt im Programm. Bauen wir ein Spiel. Ein Grafik-Adventure. Du kennst das. Ein Held wird in eine bestimmte Spielwelt hinein gesteckt. Der Held muss mit bestimmten Personen sprechen. […]

Sicherer Schleifendurchlauf mit Do while Schleife

Java Do While Schleife

Es ist doch eigentlich so: Immer wenn du die Anzahl der Schleifendurchläufe nicht kennst, nutzt du in deinen Java Programmen while Schleifen. Doch Java bietet dir neben der While Schleife einen weiteren Schleifentyp an. Diese nennt sich do while Schleife. Was kann die? Eigentlich genau das Gleiche, wie die while Schleife. Mit einem kleinen aber […]

Java Übung 25 – Simuliere eine Gelddruckmaschine

Java Übung Gelddruckmaschine

In dieser Java Übung geht es um Schleifen. Und zwar möchte ich, dass du eine virtuelle Geldruckmaschine erstellst. Was meine ich damit? Du gibst in der Konsole einen x-beliebigen Betrag ein und das Programm gibt dir virtuelle Geldscheine zurück. Ein Beispiel: Du gibst die Zahl 400 ein. Dann liefert dir das Programm 2 x 200 […]

Java Übung 26 – Das erste kleine Java Spiel

Java Übung Zahlenraten

In dieser Java Übung geht es darum ein kleines Java-Spiel zu erstellen. Und zwar Zahlen raten. Was kannst du dir darunter vorstellen? Du gibst einen bestimmten Wertebereich an. Zum Beispiel 0 bis 100. Und das Java Programm erstellt eine Zufallszahl in diesem Bereich. Dann fordert dich das Programm auf, die Zahl zu raten. Du gibst […]

So kannst du in den Java Klassen Attribute anlegen

Java Klassen Attribute

Die bisherigen Java Klassen in unserem Einführungsbeispiel besitzen noch keine Attribute. Das ändern wir und legen diese jetzt an. In diesem Beitrag erfährst du: Warum Variablen in deinen Klassen eine entscheidende Rolle spielen. Was es bedeutet eine Variable zu deklarieren. Wo du Attribute in den Java Klassen anlegen darfst und wo nicht. Wie du durch […]

Java Übung 21 – Bestimme die Anzahl der Tage

Java Übung Tage

In dieser Java Übung möchte ich, dass du eine Methode schreibst, welche zwei Zahlen entgegennimmt. Und zwar soll die erste Zahl das Jahr sein. Die zweite Zahl soll eine Monatsangabe (1-12) repräsentieren. Was soll die Methode dann machen? Die Methode soll dir die Anzahl der Tage des jeweiligen Monats zurückgeben. Achte auf Schaltjahre.