Skip to main content

Java Übung 19 – Zähle die Kommastellen

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

Java lernen durch ständiges Testen – Nutze die Testumgebung von Eclipse

Java Programmierung lernen

Probieren geht über studieren Wenn du wirklich Java Programmierung lernen möchtest, dann solltest du Java nicht aus einem Buch lernen. Du solltest auch nicht strikt von dieser oder anderen Webseiten lernen. Etwas wirklich zu lernen, setzt die Bereitschaft voraus, etwas zu probieren. Denn nur durch eigenes Probieren gelangst du zum Wesentlichen. Durch Probieren wirst du […]

Lexikalik, Syntax und Semantik in Programmiersprachen

Programmiersprachen Semantik Programmiersprachen Syntax Programmiersprachen Lexikalik Java

Java ist eine Programmiersprache. Und wie jede andere Programmiersprache ist auch Java, lediglich eine künstliche Sprache.   Normalerweise bieten künstliche Projekte immer jede Menge Spielraum für Eigenkreationen. Bei der Programmierung ist dies nicht ganz so. Denn Programmiersprachen sind auch immer sehr exakt.   Jede Programmiersprache und auch jede gesprochene Sprache folgt immer einer Abstraktionsreihenfolge, welche […]

Das Instanzieren von Java Klassen verhindern

Java Objekte Instanzieren verhindern

Die Instanzierung von Java Klassen verhindern. Was heißt das? Instanzen sind die Objekte einer Java Klasse. Und Instanzieren oder Instanzierung heißt nichts anderes, als Objekterstellung. Aber was soll das? Oder mal anders gefragt: Wieso sollte man verhindern, dass eine Java Klasse – Objekte erstellen kann? Schließlich sind doch Objekte der Sinn und Zweck jeder objektorientierten […]

So implementierst du Instanzmethoden in deine Java Klasse

Java Instanzmethoden

In einen der letzten Beiträge habe ich dir gezeigt, wie du eine Klasse anlegen kannst. Ich habe die Klasse „Mensch“ oder „Human“ angelegt und wir haben die erste Instanzvariable implementiert. Dein Code sollte jetzt so aussehen: public class Human { int size=156;//size in centimeter } In diesem Beitrag werde ich dir zeigen, wie du Java […]

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

Zwei smarte Möglichkeiten eine Java Zufallszahl zu erzeugen

Java Zufallszahl

Java Zufallszahl – Wieso? In der Java Programmierung benötigst du immer wieder einmal Zufallszahlen. Du möchtest deine Software mit Daten testen und dir keine Zahlen ausdenken. Du benötigst Stichproben, welche ein reales Verhalten simulieren. Du hast ein Spiel entworfen und die Akteure sollen mit zufälligen aber unterschiedlichen Größen, Rüstungsleveln usw. auftreten. Die Einsatzmöglichkeiten für Zufallszahlen […]

Java For Each Schleife – Aufbau und Funktionsweise

Java for each Schleife

In einer anderen Lektion habe ich dir bereits gezeigt, wie du ein Java Array mit einer for-Schleife füllen und dir später die Werte zurückgeben lassen kannst. Es gibt allerdings einen weiteren Schleifentyp, welche geradezu prädestiniert ist für Java Arrays. Dieser Schleifentyp nennt sich for each Schleife. In diesem Beitrag möchte ich dir zeigen, wie du […]

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