Java Modulo: Die Division mit Rest in Java

    Avatarbild von Dr.-Ing. Soner Emec
    Dr.-Ing. Soner Emec

    veröffentlicht am: 02.06.2022
    zuletzt aktualisiert am: 06.02.2023

    Java Modulo: Rechnen mit Rest in Java!

    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.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig