Du liest:
Java Modulo: Die Division mit Rest in Java

Java Modulo: Die Division mit Rest in Java

02.06.2022

In der Mathematik gibt es vier grundlegende arithmetische Operatoren: Addition (+), Subtraktion (-), Division (/) und Multiplikation (*). Neben diesen vier Operatoren gibt es in Java einen zusätzlichen Operator, der als “Modulo” bezeichnet wird.

Der Java “Modulo” Operator (%) dient der Ermittlung des Rests der Division zweier Zahlen. Er benötigt zwei Operanden: einen “Dividenden” und einen “Divisor“. Der Java “Modulo” Operator kann in verschiedensten Szenarien verwendet werden, wie z. B. um zu überprüfen, ob eine Zahl gerade oder ungerade ist oder ob die angegebene Zahl eine Primzahl ist oder nicht.

Dieser Beitrag wird den Java Modulo Operator anhand geeigneter Beispiele erläutern.

Was ist der Java Modulo Operator?

Der Java “Modulo” Operator wird verwendet, um den Rest nach der Division zweier Zahlen zu ermitteln.  Er wird auch “Restwert” Operator genannt und mit dem Prozentzeichen “%” bezeichnet.

Wenn zum Beispiel die Zahl “21” der “Dividend” und “2” der “Divisor” ist, dann wird ihr Rest mit “21%2” berechnet, was “1” ergibt.

Syntax

A%B

Hier ist “A” der “Dividend” und “B” der “Divisor” und der Java Modulo Operator “%” ermittelt den Rest, indem er “A” durch “B” dividiert.

Bevor wir zur Implementierung des Modulo Operators springen, werden wir erläutern, warum wir ihn beim Programmieren in Java brauchen.

Warum brauchen wir den Java Modulo Operator?

Bei einer einfachen Divisionsoperation, bei der sowohl “Teiler” als auch “DividendInteger sind, kann der Rest leicht berechnet werden, ohne den Java “Modulo” Operator zu verwenden. Im folgenden Beispiel erstellen wir zwei Integer, “Dividend” und “Divisor“, und deklarieren sie mit den Werten “21” bzw. “2“:

int dividend = 21;
int divisor = 2;

Als nächstes berechnen wir den “Rest“, indem wir die folgende Formel anwenden:

int rest = dividend - (divisor * (dividend / divisor));
System.out.print("Der Rest nach der Divison beträgt: " + rest);

Die Ausführung des oben gezeigten Programms gibt “1” als Rest des angegebenen “Dividenden” und “Divisors” aus:

Der Modulo (oftmals auch falsch Modulus Operator genannt) Division Operator kann auch manuell implementiert werden, wie in diesem Test-Fall.

Wenn der “Divisor” oder “Dividend” jedoch ein Dezimalzeichen hat, können wir den Rest nicht mit dem Divisionsoperator ermitteln.

Das folgende Programm berechnet zum Beispiel den Rest, wenn der “Dividend” vom Typ “double” und der “Divisor” ein Integer ist:

double dividend = 21;
int divisor = 2;
double rest = dividend - (divisor * (dividend/divisor));
System.out.print("Der Rest nach der Divison beträgt: " + rest);

Bei Dezimalstellen verliert der Divisionsoperator den Rest und zeigt den Wert “0.0” an:

Java Modulo: Die manuelle Implementierung ist nicht der beste Weg!

In dieser Situation kommt der Java “Modulo” Operator ins Spiel, der dabei hilft, den korrekten Restwert zu ermitteln.

In demselben Programm werden wir nun den Java “Modulo” Operator verwenden, um den Rest zu berechnen:

double rest = dividend % divisor;

Die gegebene Ausgabe zeigt, dass wir den Rest für die eingegebenen Werte erfolgreich berechnet haben:

Nun haben wir die Variable vom Type int verwendet, um die Division Operation mit dem Modulo-Operator (engl. Remainder Operator) durchzuführen.

Anwendungsfälle des Java Modulo Operators

Hier ist eine Liste der häufigsten Anwendungsfälle, in denen der JavaModulo“ Operator verwendet werden kann:

  • Um zu überprüfen, ob eine Zahl gerade oder ungerade ist
  • Um zu überprüfen, ob eine Zahl eine Primzahl ist oder nicht

Wir werden nun die Verwendung des Java “Modulo” Operators in den oben genannten Fällen erläutern.

Wie man mit dem Java Modulo Operator überprüft, ob eine Zahl gerade oder ungerade ist

Wenn wir eine Zahl durch “2” teilen und der Rest gleich “null” ist, handelt es sich um eine gerade Zahl. Wir haben diese Logik also in die “if” Bedingung des folgenden Programms eingebettet und den Java “Modulo” Operator zur Berechnung des Rests verwendet:

int meineZahl = 25;
if (meineZahl % 2 == 0) {
  System.out.println(meineZahl + " ist eine gerade Zahl!");
} else {
  System.out.println(meineZahl + " ist eine ungerade Zahl!");
}

Wie man sehen kann, ist die Ausgabe, dass “25” eine ungerade Zahl ist, was wahr ist:

Der erste Use Case vom Java Modulo Operator: Prüfen ob eine Zahl gerade oder nicht ist!

Java Modulo Operator: Ist es eine Primzahl?

Wenn eine Zahl nur zwei Primfaktoren, “1” und die “Zahl” selbst hat, dann wird sie als “Primzahl” bezeichnet. In einem Java Programm können wir den “Modulo” Operator verwenden, um festzustellen, ob eine Zahl eine Primzahl ist oder nicht. Dazu definieren wir zunächst eine Funktion “pruefeObPrimzahl()“, die eine “Zahl” als Argument entgegennimmt und einen “booleschen” Wert (mehr über den Datentyp Java Boolean erfahren) zurückgibt, der angibt, ob das angegebene Argument eine Primzahl ist oder nicht. Hinweis: In der “for-Schleife” der “pruefeObPrimzahl()” Funktion haben wir “i <= Math.sqrt(meineZahl)” als Testbedingung hinzugefügt, da eine Primzahl keine Faktoren haben kann, die größer als ihre “Quadratwurzel” sind.

public static boolean pruefeObPrimzahl(int meineZahl) {
  if (meineZahl <= 1) {
    return false;
  }
  for (int i = 2; i <= Math.sqrt(meineZahl); i++) {
    if (meineZahl % i == 0) {
      return false;
    }
  }
  return true;
}

Nachdem wir die “pruefeObPrimzahl()” Funktion definiert haben, werden wir sie ausführen und die Zahl “57” als Argument übergeben:

public static void main(String[] args) {
  System.out.println("Ist die 57 eine Primzahl? " + pruefeObPrimzahl(57));
}

Da “57” keine Primzahl ist, gibt “pruefeObPrimzahl()” den Wert “false” zurück:

Das Resultat (engl. Result) der Klasse (engl. Class) pruefeObPrimzahl ist also die Prüfung einer Primzahl mit Hilfe des Java Modulo Operatoren!

Das waren alle wichtigen Informationen über den Java Modulo Operator. Du kannst bei Bedarf weiter recherchieren.

Zusammenfassung: Der Modulo Operator in Java

Der Java “Modulo” Operator wird verwendet, um den Rest zweier Zahlen nach der Division zu ermitteln. Er wird auch “Restwert” Operator genannt und mit dem Prozentzeichen “%” bezeichnet. Wenn “A” der “Dividend” und “B” sein “Divisor” ist, dann findet der Java Modulo Operator “%” den Rest, indem er “A” durch “B” dividiert. In diesem Beitrag wurde der Java Modulo Operator anhand geeigneter Beispiele erläutert.

Programmieren lernen Banner

Starte deine Karriere als Softwareentwickler

Interaktiv Python, Java und C++ programmieren lernen

Jetzt loslegen


Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren

Arrow-up