Skip to main content

Java Übung 16 – Bestimme den größten gemeinsamen Teiler

In dieser Java Übung möchte ich, dass du den größten gemeinsamen Teiler zwei Zahlen ermittelst.

Ich möchte, dass du das Ganze mit einer while-Schleife umsetzt.

Und wie?
Du legst eine neue Klasse „GGT“ (größter gemeinsamer Teiler) an.
In diese Klasse implementierst du eine Klassenmethode „berechneGGT“.
Diese erwartet zwei Argumente vom Datentyp Integer.

So und was macht die Methode?
Angenommen du übergibst der Methode zwei Werte (18 und 12).
Die Methode soll jetzt von diesen beiden Werten einen Startwert bestimmen.

Es bietet sich an den kleineren Wert zu wählen.
Und dann soll die Methode prüfen,

  • Ist 12 ein Teiler von 18? – wenn nicht dann eben 11
  • Ist 11 ein Teiler von 18?- wenn nicht dann eben 10
  • .
  • Ist 9 ein Teiler von 18?- Ja ist es. Ist 9 auch ein Teiler von 12- Ach nö…. Also weiter mit 8
  • .
  • Ist 6 durch 18 und durch 12 teilbar- Klasse wir haben einen Gewinner.

Der GGT wird dann als Bildschirmanzeige zurückgeben.

Also dann viel Spaß bei dieser Java Übung.

PS.
Java Übung – Bitte mit while Schleife lösen.


Um diese Java Übung zu lösen, muss erst einmal der Startwert ermittelt werden

Da der Teiler immer kleiner ist, als die Vielfachen- macht es Sinn bei der kleineren Zahl anzufangen.

Somit solltest du als Erstes feststellen, welche der Zahlen kleiner ist.
Und diese kleinere Zahl wird dann als Teiler gespeichert.
Also bei 18 und 12. Wäre dies die 12.
Also wäre der erste Teiler, welcher ausprobiert werden sollte die 12.

Und so würde der Java Code erst einmal aussehen.


public class GGT {
 
static void bestimmeGGT(int zahlEins, int zahlZwei){
int teiler;
if (zahlEins<=zahlZwei){
teiler=zahlEins;
}
else {
teiler=zahlZwei;
}
System.out.println(teiler);
}
 
public static void main(String[] args) {
bestimmeGGT(18,12);
}
}

In der Methode habe ich eine lokale Variable, namens „teiler“ implementiert.
Die Methode bekommt zwei Zahlen geliefert und prüft, welche Zahl kleiner ist.
Wenn Zahl1 kleiner ist, dann wird Zahl1 der Teiler.
Und ansonsten wird Zahl2 der Teiler.

Aus Kontrollzwecken lass ich mir schon einmal den Teiler als Bildschirmausgabe ausgeben.
Klicke auf „Run“ und probier es aus.

Und? Die richtige Zahl kommt zurück, oder?

Also machen wir weiter.
Jetzt kommt die while Schleife dazu.

Die while Bedingung sieht so aus:
(zahlEins % teiler !=0 || zahlZwei % teiler !=0)

Was macht diese jetzt?
Hier kommt der Modulo Operator ins Spiel.
Und zwar wird geprüft.

Wenn ZahlEins durch den Teiler geteilt wird – bleibt dann ein Rest?
Also wenn 18 durch 12 geteilt wird, bleibt dann ein Rest.
Ja klar 18 durch 12 ist 1 Rest 7.
Der Rest ist somit nicht Null. Der Ausdruck ist wahr bzw. true.

Nehmen wir Zahl 2.
Diese ist 12.
12 geteilt durch 12 ist 1. Rest 0.
Und 0 ist nicht das Gleiche wie ungleich Null.
Dieser Ausdruck ist somit falsch bzw. false.

Jetzt sind beide Ausdrücke miteinander verknüpft.
Und zwar durch ein logisches Oder.
Und true oder false ergibt true.
Somit ist die Schleifenbedingung true.

Und das ist das Startsignal für die while Schleife.
Denn solange die Schleifen-Bedingung true ist, springt das ganze Java Programm immer wieder in die Schleife.

Also sieht dann der komplette Java Code für dieses Programm so aus:


public class GGT {
 
static void bestimmeGGT(int zahlEins, int zahlZwei){
int teiler;
if (zahlEins<=zahlZwei){
teiler=zahlEins;
}
else {
teiler=zahlZwei;
}
while(zahlEins % teiler !=0 || zahlZwei % teiler !=0){
System.out.println("versuche: "+teiler);
teiler--;
}
System.out.println(teiler);
}
 
public static void main(String[] args) {
bestimmeGGT(18,27);
}
}

So was passiert in der Schleife?
Es wird eine Bildschirmausgabe erzeugt, welche den aktuellen Teiler zurückgibt.

Außerdem wird der Teiler bei jedem Durchlauf, um eins verringert.

Wenn der Teiler gefunden ist:
Die While Bedingung also false ist, springt das Java Programm nicht mehr in die Schleife.

Dann wird die Bildschirmausgabe außerhalb der Schleife zurückgeben.
Und diese beinhaltet jetzt den größten gemeinsamen Teiler.


Ähnliche Beiträge

So organisierst und verwaltest du ganz bequem deine Java Projekte

Du kennst das auch. Denn du bist ja fleißig. Und weil du so fleißig bist, hast du mitunter auch mehrere Java Projekte gleichzeitig laufen. Und dann kommt es vor, dass du enorm viele Java Projekte am Laufen hast. Und dein Package-Explorer wird extrem unübersichtlich. In diesem Beitrag möchte ich dir zwei Varianten vorstellen, wie du […]

So kannst du mit dem StringTokenizer Java Strings zerlegen oder splitten

Java StringTokenizer Java Strings teilen zerlegen splitten

Java StringTokenizer – was ist das? Bevor ich diese Frage kläre, schiebe ich eine zweite Frage hinterher. Denn im Wort Tokenizer steckt das Wort Token. Also was ist ein Token? Hier die Definition zum Token: Ein Token ist eine bestimmte Aneinanderreihung von Zeichen. Man kann auch sagen, eine lexikalische Einheit. Das kann zum Beispiel eine […]

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

Java lernen von Kopf bis Fuß

Wenn du Java lernen möchtest, kannst du an meinem kostenlosen Java Kurs teilnehmen. Aber manch Einer hätte gern eine zweite Meinung. Und da bieten sich natürlich Java Bücher an. Eines dieser Java Bücher möchte ich dir jetzt vorstellen. Dieses Buch nennt sich „Java von Kopf bis Fuß“. Was kannst du von diesem Buch erwarten? Also […]

Java Exklusives Oder – So nutzt du den Xor Operator

Java exklusives oder

In diesem Beitrag möchte ich dir den Xor Operator von Java vorstellen. Dieser Operator wird auch als ausschließendes oder exklusives Oder bezeichnet. Ein Beispiel: Was wilst du heute zum Mittag essen: Fleisch oder Fisch? Auf diese Frage gibt es nur eine Antwort. Es ist entweder Fisch oder Fleisch. Niemals beides. Das Eine schließt das andere […]

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

Java Objekte leben auf dem Heap

Java-Objekte-Heap

Java hat eine interne Speicherverwaltung. Eigentlich ist es nicht nur eine. Es sind mehrere.   Uns interessieren nur zwei. Methoden und lokale Variablen werden auf dem Stack verwaltet. Und die Speicherverwaltung für Java Objekte und den Instanzvariablen findet auf dem Heap statt.   Ja wieso braucht Java eigentlich zwei Speichersysteme?   Es ist ganz einfach. […]

Drei Möglichkeiten um Java Objekte zu zerstören

Java Objekte zerstören

Java Objekte leben genau solange, wie eine Referenzvariable auf sie zeigt. Wenn dieser Zeiger nicht mehr existiert, wird dieses Objekt aufgeben. Und wenn dieses Objekt erst einmal aufgegeben wurde, dann kommt der Garbage Collector und entsorgt dieses. Aber wie kannst du nun am Sinnvollsten Objekte aufgeben? Lass es uns herausfinden.

So kannst du Instanzen in Java Klassen zählen

Wie kannst du die Instanzen der Java Klassen zählen? Ganz einfach. Am besten ist es, wir bleiben beim Einführungsbeispiel zu den Java Klassen. Und ich wähle die Klasse „Monster“. Um es einfach zu halten, soll auch der Programmstart durch die Klasse erfolgen. Die Klasse bietet somit eine main-Methode an.

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