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

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

Der wichtige Unterschied zwischen Java Methoden

Java Methoden Unterschied

Jetzt machen wir Nägel mit Köpfen. Dieses Sprichwort stammt aus den Anfängen des Industriezeitalters. Denn früher wurden Nägel nicht industriell, sondern per Hand gefertigt. Und da kam es schon einmal vor, dass versehentlich Nägel ohne Kopf produziert wurden. Was blieb ist das Sprichwort „Nägel mit Köpfen“ Und dieses steht sinngemäß für eine schnelle, qualitativ hochwertige […]

So lassen sich Java Arrays kopieren

Java Arrays kopieren

Java Arrays kopieren oder klonen…. Was heißt das eigentlich? Eine Kopie ist eine Reproduktion bzw. die Nachbildung eines Originals. Somit ist jede Fotographie – die Abbildung einer bestimmten optischen Wirklichkeit, zu einem festen Zeitpunkt. Die Kopie einer Buchseite ist das optische Abbild dieser spezifischen Buchseite – auch zu einem festen Zeitpunkt. Wichtig in diesem Zusammenhang […]

Beim Aufruf werden Java Methoden auf dem Stack gestapelt

Java Methoden gestapelt

Java Methoden werden beim Aufruf gestapelt. Und jedes Element auf dem Stapel nimmt Speicherplatz weg. Und manchmal ist es so, dass der Stapel richtig hoch wird und dann…. Ja was passiert eigentlich dann? Betrachten wir einmal ein Computerspiel. Irgendeines. In diesem Computerspiel gibt es Vögel, welche abgeschossen werden sollen. Was bedeutet das denn genau? Beim […]

Java Übung 31: Speichere deine Würfe im Array

Java Übung Array Würfelspiel

In dieser Java Übung soll ein Würfelspiel simuliert werden. Lege eine Klasse namens, Würfelspiel an. Diese Klasse enthält eine statische Methode, namens würfeln(). Diese Methode erwartet einen Parameter vom Datentyp Integer, namens „anzahlWuerfe“. Diese Variable/Parameter repräsentiert die Anzahl der Würfe. Nachdem der Methode die Anzahl der Würfe übergeben wurde, soll die Methode Zufallszahlen zwischen 1 […]

Java for Schleifen schachteln – So funktioniert es

Java For Schleifen schachteln

Diese Situation kennst du doch auch…. Du stehst an der Haltestelle und wartest auf den Bus. Dein Blick fällt auf die Uhr.   Oder du wartest an der Ecke auf deinen Freund oder Kollegen. Immer wieder schaust du auf deine Uhr.   Sie ist kaum noch wegzudenken. Die mobile Taschenuhr.   Lange Zeit wurde die […]

So erstellst du deine ersten Java Klassen mit Eclipse

Java Klassen sind Baupläne für Java Objekte. Und da Java eine objektorientierte Programmiersprache ist, sind Java Klassen somit ein elementarer Bestandteil. In diesem Beitrag möchte ich dir zeigen, wie du eine Java Klasse in Eclipse erstellen kannst. Ich möchte dir außerdem zeigen, was physikalisch in deinem Projekt passiert. Ganz zum Schluss zeige ich dir noch, […]

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.

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