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

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

Du musst in Java nicht jede Exception fangen

Java Exception fangen

Kennst du die Metapher mit dem Jongleur und den Bällen? Ein Jongleur hält drei Bälle in der Luft, dann vier und irgendwann fünf. Aber irgendwann ist es genau ein Ball zu viel. Und Alles bricht zusammen. Ja ein Ball zu viel, kann alles versauen. 🙂 Und so ist es doch immer im Leben. Du kannst […]

So verwendest du die Java Codeblöcke zur Automatisierung

Java Codeblöcke

In diesem Beitrag geht es um den Einsatz von Java Codeblöcken oder Initialisierungsblöcken. Viele Wege führen nach Rom. Oder Alle Wege führen nach Rom. Heißt es in einem alten Sprichwort. Und so ähnlich ist es bei der Java Programmierung. In diesem Beitrag möchte ich dir einen weiteren Weg vorstellen, wie du Variablen eines Java Objektes […]

Der Java Datentyp boolean im Interview

Java boolean

Nein, ich bin nicht verrückt. Aber… Neulich traf ich zufällig den Java Datentyp boolean. 🙂 Er erklärte sich bereit, mir ein Interview zu geben. In diesem Interview geht es um die Werte, welcher dieser Wertetyp annehmen kann. Und in diesem Zusammenhang geht es auch um Logik. Also lassen wir uns doch die Logik vom direkten […]

So nutzt du die While Schleife in deinem Java Programm

Java While Schleife

Manchmal ist es wichtig, Dinge einmal öfter zu tun. Bei der Java Programmierung kann es schonmal sein, dass du einen Code mehrfach ausführen lassen musst. Zum Beispiel die Zahlen eins bis zehn. Ein Java Programm, welches die Zahlen eins bis zehn wiedergibt. Na wie wäre das? Der Java Code dazu würde so aussehen: public class […]

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

Java Übung 18: Berechne die Fakultät

Java Übung Fakultät

In dieser Java Übung geht es um die Fakultät aufeinander folgender Zahlen. Für alle, bei denen der Mathe-Unterricht genauso lange her ist, wie bei mir: 🙂 Die Fakultät ist das Produkt aufeinander folgender natürlicher Zahlen. Zum Beispiel: Die Fakultät von 2 ist: 1*2=2 Die Fakultät von 5 ist: 1*2*3*4*5=120 So – ich hoffe, dass ich […]

So legst du Utility Klassen in Java an

Java Utility Klassen

Utility Java Klassen – was ist das? Man nennt diese auch Hilfsklassen von Java. Diese Utility Klassen sind Java Klassen, welche lediglich Methoden und Konstanten anbieten. Am Beispiel: Die Klasse Math ist so eine klassische Utility Klasse. Wozu braucht man solche Klassen? Diese Klassen sind so etwas wie ein Werkzeugkoffer für jedes Java Programm. Hier […]

So kannst du Java Konstruktoren anlegen und überladen

Java Konstruktoren

Der Name sagt es schon. Java Konstruktoren konstruieren oder bauen Java Objekte. Und diese Objekte baut der Konstruktor auf Vorlage der entsprechenden Java Klasse. In diesem Beitrag zeige ich dir natürlich verschiedene Ansätze wie du den Konstruktor einsetzt. Ich zeige dir dies Schritt für Schritt. Dabei zeige ich dir auch verschiedene Dinge, welche nicht funktionieren. […]