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 Vererbung findet auch zwischen Einkaufstüten und Polizeiautos statt

Java Vererbung

„Manchmal findet Java Vererbung auch zwischen Einkaufstüten und Polizeiautos statt“ Irrer Titel, oder? Aber mal Hand aufs Herz. Was haben eigentlich eine Einkaufstüte und ein Polizeiwagen gemeinsam? Ich verrate dir etwas: Du kannst die Verbindung nicht erkennen, denn ich habe dir nicht alles verraten. Es fehlt noch ein wichtiger Aspekt – eine Verbindung zwischen beiden. […]

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

Über das kurze Leben einer lokalen Variablen

Java Variable lokal

Lass uns über die Lebensdauer einer lokalen Variablen sprechen. Warum ausgerechnet die Lebensdauer? Alle Java Variablen, unterscheiden sich in folgenden Punkten: wo diese deklariert werden können, wie du diese aufrufen kannst, welchen Bereich diese abdecken, und Ihre Lebensdauer Und eine lokale Java Variable hat eine relativ kurze Lebensdauer. Schauen wir uns zuerst Klassen- und Instanzvariablen […]

Java Vererbung:
Die 3 Schablonen für deine Java Objekte

Java Vererbung Beispiel

Im letzten Beitrag habe ich dir das Java Vererbung Konzept an einem Beispiel vorgestellt. In dem Beispiel-Rollenspiel gab es Klassen zu Helden und Superhelden. Ich habe dir die Vererbungshierarchien theoretisch erläutert. Jetzt geht es ans Praktische. In diesen Beitrag lernst du: Wie du bestehende Java Klassen erweiterst Wie du Objekte aus den erweiterten Klassen erstellen […]

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 nutzt du Methoden aus der Java String Klasse

Java Strings Methoden

In einen der letzten Beiträge haben wir darüber gesprochen, dass Java Strings – Objekte sind. Dass Strings in allen Programmen äußerst häufig vorkommen Und dass sich deshalb Referenzvariablen String-Objekte im String Pool teilen. Das Konzept hinter dem String-Pool ist die Teilung der Ressourcen. Und das bedeutet: Weniger Objekte – mehr Speicher Mehr Speicher – bessere […]

Ende vom Java Blog?

Falls du hier schon länger dabei bist, wird dir aufgefallen sein – dass kaum noch Beiträge veröffentlicht werden. Das tut mir wirklich leid und dafür möchte ich mich auch entschuldigen. Ich weiß, dass Einige unter Euch den Java-Blog wirklich lieben. Aber es ist verdammt schwierig so ein aufwendiges Thema – stilvoll, unterhaltend und methodisch umzusetzen. […]

Die sechs Bestandteile von Java Methoden

Java Methoden Bestandteile

Java Methoden hauchen deinem Java Programm Leben ein. Ohne eine Methode würde deine Java Klasse ein starres Konstrukt sein. Deine Objekte hätten Eigenschaften. Aber sie könnten nichts machen. Und das wäre eine trostlose Welt. Java Methoden sorgen also dafür, dass Objekte interagieren. Methoden bestehen aus bestimmten Bausteinen. Und diese Bausteine bestimmen, was die Methode darf […]

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

Das Java Leben ist einfacher mit For-Schleife

Java For Schleife Aufbau

In einem anderen Artikeln habe ich bereits über Schleifen in Java gesprochen. In diesem Artikel möchte ich dir eine ganz besondere Schleife vorstellen. Warum ist diese so toll? Sie hat einen integrierten Schleifenzähler. Die Schleife zählt also bei jedem Durchlauf automatisch mit. Aber dazu gleich mehr…. Lass uns einmal so eine For Schleife anlegen.