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

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

Der bedeutende Unterschied zwischen Klassenvariablen und Instanzvariablen

Java Klassenvariablen

Bei der Java Programmierung unterscheidet man drei Arten von Variablen. Als erste Gruppe sind die lokalen Variablen zu nennen. Auf diese gehe ich in einem separaten Artikel ein. Mich interessieren die zwei anderen Variablentypen. Zum einen existieren Klassenvariablen. Und dann sind da noch die Instanzvariablen. Wo liegt der Unterschied? Instanzvariablen stehen einem Objekt zur Verfügung. […]

Sicherer Schleifendurchlauf mit Do while Schleife

Java Do While Schleife

Es ist doch eigentlich so: Immer wenn du die Anzahl der Schleifendurchläufe nicht kennst, nutzt du in deinen Java Programmen while Schleifen. Doch Java bietet dir neben der While Schleife einen weiteren Schleifentyp an. Diese nennt sich do while Schleife. Was kann die? Eigentlich genau das Gleiche, wie die while Schleife. Mit einem kleinen aber […]

So lassen sich aus Java Klassen Instanzen erstellen

Java Klassen Instanzen erstellen

Lass uns jetzt aus den Java Klassen heraus Objekte anlegen. Im Einführungsbeispiel hast du bereits gelernt, wie du: Instanzvariablen bzw. Attribute anlegst Wie du aus einer normalen Java Klasse eine Programmstart Klasse machst In diesem Artikel erfährst du: Was Objekte bzw. Instanzen sind. Wie sich Objekte zusammensetzen. Wo und wie du Instanzen aus Java Klassen […]

Nutze die richtigen Methoden zum Java Lernen

Java lernen Methoden

Ich lernte die Java Programmierung auf die klassische Art. Ich kaufte mir das erste Buch und los ging es. „Jetzt wirst du Java lernen“ – sagte ich zu mir. Ich war relativ schnell ziemlich frustriert, denn irgendwie fehlten mir ein paar Zusammenhänge. Kennst du das? Du hast ein Wissensfetzen und noch einen. Aber das Wichtigste. […]

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

Verwalte deine Java Klassen in packages

java klassen verwalten

Es macht durchaus Sinn deine Java Klassen in verschiedenen Paketen zu organisieren. Wieso? Es sprechen mehrere Gründe dafür: Du kannst doppelte Klassennamen verwenden Du kannst deinen Code oder deine Klassen inhaltlich trennen Du kannst Hierarchien abbilden. Und genau um diese Dinge geht es in diesem Beitrag

So kannst du ein Java Programm starten und Argumente übergeben

Um ein Java Programm starten zu können, benötigst du immer die main-Methode. Das Programm startet immer genau an dieser Stelle. Alle lokalen Variablen, welche du in der Main Methode anlegst, kannst du dann im Programm nutzen. Auch alle Methoden, welche du innerhalb des Methodenrumpfes der main-Methode aufrust, werden ausgeführt. Was ist aber vor der main-Methode. […]

So kannst du ein neues Java Projekt mit Eclipse anlegen und konfigurieren

Java Projekt anlegen Eclipse

In diesem Beitrag möchte ich dir zeigen, wie du ein neues Java Projekt mit Eclipse anlegen kannst. Ich werde dir außerdem einen kurzen Überblick über die Konfigurationsmöglichkeiten geben. Dann gebe ich dir noch eine ganz einfache Schritt-für-Schritt-Anleitung für dein allererstes Java Projekt und ich zeige dir, was nach dem Anlegen des Projektes eigentlich passiert ist.

Java Duales Zahlensystem – Binäre Zahlen in Java umwandeln

Java Dual System

Das duale Zahlensystem hat viele Bezeichnungen. Oft wird auch es Dualsystem oder Binärsystem genannt. Es besteht aber immer aus 2 Zahlen. Man verwendet oft die Zahlen 0 und 1. Es können aber auch sämtliche anderen Zahlenpaare sein. Zum Beispiel 7 und 175 sind für sich genommen, auch ein normales Zahlenpaar und somit ein Dualsystem. Mit […]