Skip to main content

Java Übung & Lösung: Zähle die Kommastellen mit einer Schleifen-Struktur


java übung lösung kommastellen zählen schleife

In dieser Java Übung möchte ich, dass du eine Methode zum Zählen von Kommastellen schreibst.

Lege dazu eine Klasse „KommaZahl“ an.
Diese Klasse enthält die statische Methode „zaehleKommaStellen“, welche eine Kommazahl als übergebenen Parameter erwartet.

Die Methode bekommt beim Aufruf eine Kommazahl übergeben und soll dann die Anzahl der Nachkommastellen zurückgeben.
Die Methode wird in der main-Methode aufgerufen.
Zur Überprüfung übergib ihr die Zahl 22,55543.

Also dann viel Spaß und Erfolg bei der Lösung dieser Java Übung.


Für die Lösung dieser Java Übung solltest du dich fragen:

Wie würdest du es machen?
Also wenn du diese Aufgabe gestellt bekommst:
Zähle die Kommastellen der Zahl 22,55543.

Dann würdest du beim Komma anfangen zu zählen.
Und du würdest das Komma gedanklich nach rechts verschieben.
Und zwar bis zum Ende der Zahl.

Und genau so, solltest du hier auch vorgehen.
Das Komma einer Zahl schiebst du nach rechts, indem du die Zahl mit 10 multiplizierst.

  • 22,55543 * 10 = 225,5543
  • 225,5543 * 10 = 2.255,543
  • 2.255,543 * 10 = 22.555,43
  • 22.555,43 * 10 = 225.554,3
  • 225.554,3 * 10 = 2.255.543

Das würde bedeuten:

  • Du schreibst eine Methode, welche die übergebene Zahl solange mit 10 multipliziert, bis kein Komma mehr da ist.
  • Gleichzeitig zählt die Methode dann, wie oft die Zahl mit 10 multipliziert werden musste.
  • Und dies ist dann die Anzahl der Nachkommastellen.

Klingt gut?
Denke ich auch – Also machen wir das so.

Und eine bestimmte Anweisung immer und immer wieder ausführen – Macht man am besten mit einer Schleife.
Da die Ausführung an eine Bedingung geknüpft ist, bietet sich die while-Schleife an.

Also kannst du doch im Schleifenkopf folgende Anweisung festlegen.
„Multipliziere solange mit 10 bis die Zahl kein Komma mehr hat.“

Und die Abruchbedingung könnte so lauten:
while (zahl-(int) zahl != 0)
Die übergebene Zahl minus der übergebenen Zahl als Integer ungleich Null.

Das würde für unseren Schleifendurchlauf am Beispiel bedeuten:

  1. Durchlauf: 22,55543 – 22 = 0,55543
  2. Durchlauf: 225,5543 -225 = 0,5543
  3. Durchlauf: 2.255,543-2255=0,543
  4. Durchlauf: 22.555,43-22555=0,43
  5. Durchlauf: 225.554,3-225.554=0,3
  6. Durchlauf: 2.255.543-2.255.543=0

Nach fünf Durchläufen würde die Schleife abrechen.
Das bedeutet es wurde 5-mal mit 10 multipliziert.
Es musste 5-mal das Komma nach rechts verschoben werden.
Die Zahl hat 5 Kommastellen.

So würde der komplette Code zu dieser Java Übung aussehen:


public class KommaZahl {
 
static int zaehleKommaStellen(double zahl) {
int kommaStelle = 0;
while (zahl - (int) zahl != 0) {
zahl = zahl * 10; // Komma wird jeweils 1-mal nach rechts verschoben
kommaStelle++;// Schleifendurchlauf wird gezählt
}
 
return kommaStelle;
}
 
public static void main(String[] args) {
System.out.println(zaehleKommaStellen(22.55543));
}
}

Die Abbruchbedingung der Schleife könntest du auch mit dem Modulo-Operator definieren.
Diese würde dann lauten:
while (zahl % 1 !=0)

Die Schleife würde solange durchlaufen werden, bis die Division durch 1 keinen Restwert mehr hat.
Der Code bei diese Umsetzung würde dann so aussehen:


public class KommaZahl {
 
static int zaehleKommaStellen(double zahl) {
int kommaStelle = 0;
while (zahl %1 != 0) {
zahl = zahl * 10;
kommaStelle++;
}
return kommaStelle;
}
 
public static void main(String[] args) {
System.out.println(zaehleKommaStellen(22.55543));
}
}

Du siehst, oftmals kannst du Probleme auf verschiedene Arten lösen.

Ich hoffe diese Übung hat dir gefallen.
In einer der nächsten Java Übungen vertiefen wir das Ganze noch etwas.


Ähnliche Beiträge