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

Hier sind ein paar richtig nette Features, die dich beim Java lernen unterstützen

Java lernen Eclipse

Was ist das Wichtigste beim Einstieg in ein neues Wissensgebiet? Nein, kein gutes Sachbuch oder ein besonders guter Lehrer. Es ist Spaß. Beim Java Lernen brauchst du Spaß. Es gibt Lehrer, welche ihren Stoff so vermitteln, dass Lernen Spaß bereitet. Aber die Grundvoraussetzung ist und bleibt der Spaß. Und nichts ist so spaßhemmend wie Langeweile […]

Ein Java Fenster erzeugen mit dem JFrame

Java-Fenster-erzeugen

Ein Java Fenster erzeugen mit Swing. Java Swing – was ist das? Zum Erstellen von grafischen Benutzeroberflächen, kurz GUI, bietet Java eine eigene Standardklasse an. Diese Klasse nennt sich Swing. Aus dieser Swing-Klasse heraus können Objekte erstellt werden. Diese Objekte lassen sich in vier verschiedene Kategorien einteilen. Fenster und Dialoge bilden das Grundgerüst einer grafischen […]

So kannst du Java Arrays anlegen

Java Arrays anlegen

Java Arrays– Was ist das? Stell es dir einmal als ein Bücherregal vor. In einem Bücherregal befinden sich sämtliche Bücher. Und diese befinden sich schön nebeneinander. Jedes Buch hat seinen festen Platz. Du kannst die Bücher ganz genau lokalisieren. Zum Beispiel kannst du sagen. Das erste Buch von links Das dritte von rechts usw. Und […]

So kannst du Eclipse installieren

Eclipse installieren

Das Schöne an Eclipse ist, es läuft auf sämtlichen Betriebssystemen. Eclipse wird einfach auf der Webseite des Herstellers herunter geladen und kann dann installiert werden. Dabei stehen dir verschiedene Versionen zur Verfügung.

So richtest du einen Schreibschutz für deine Java Variablen ein

Stell dir vor: Du hast erfolgreich dein erstes Programm für die Personalabteilung aufgesetzt. Du hast deine ersten 1000 Datensätze schön sauber angelegt. Und nun kommt dein Kollege und überschreibt die Vornamen der ersten 100 Mitarbeitern. Na schöne Sch…. 🙂 Wie kann das passieren? Wie kann man das verhindern? Du brauchst eigentlich nur deine Java Variablen […]

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 […]