Modulo-Operator in Java

JavaBeginner
Jetzt üben

Einführung

Der Modulo-Operator ist ein mathematischer Operator, der verwendet wird, um den Rest der Division zweier Zahlen zu finden. Dieser Operator wird durch das Symbol % dargestellt. In Java gibt der Modulo-Operator den Rest der Division der ersten Zahl durch die zweite Zahl zurück. In dieser Übung werden Ihnen einige Anwendungsfälle dieses Operators erläutert.

Modulo-Operator-Beispiel

In diesem Schritt werden wir die grundlegende Syntax des Modulo-Operators sehen und wie er auf ganzzahlige und Gleitkommazahlenvariablen verwendet werden kann. Wir werden auch sehen, wie er negative Zahlen behandelt.

  1. Erstellen Sie eine neue Datei namens ModuloOperatorDemo.java mit dem Befehl touch.
  2. Öffnen Sie die Datei in einem Texteditor wie nano.
  3. Fügen Sie den folgenden Code in die Datei ein:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        System.out.println("10 % 3 = " + 10 % 3);
        System.out.println("3 % 10 = " + 3 % 10);
        System.out.println("10.0 % 3.0 = " + 10.0 % 3.0);
        System.out.println("10.0 % 3 = " + 10.0 % 3);
        System.out.println("-10 % 3 = " + -10 % 3);
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
10 % 3 = 1
3 % 10 = 3
10.0 % 3.0 = 1.0
10.0 % 3 = 1.0
-10 % 3 = -1

Bedarf an Modulo-Operator

In diesem Schritt werden wir diskutieren, warum der Modulo-Operator benötigt wird, wenn der Divisionsoperator verwendet wird.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int dividend = 10;
        int divisor = 3;
        int remainder = dividend - (divisor * (dividend/divisor));
        System.out.print("The remainder is: " + remainder);
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
The remainder is: 1

Wenn der Dividend oder der Divisor keine Ganzzahl ist

In diesem Schritt werden wir sehen, wie der Modulo-Operator Dezimalzahlen behandeln kann.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        double dividend = 10;
        int divisor = 3;
        double remainder = dividend - (divisor * (dividend/divisor));
        System.out.print("The remainder is: " + remainder);
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
The remainder is: 0.0
  1. Ändern Sie den Code in der Datei wie folgt:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        double dividend = 10;
        int divisor = 3;
        double remainder = dividend % divisor;
        System.out.print("The remainder is: " + remainder);
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code erneut mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte jetzt die folgende Ausgabe erzeugen:
The remainder is: 1.0

ArithmeticException durch den Modulo-Operator

In diesem Schritt werden wir sehen, wie der Modulo-Operator eine Ausnahme wirft, wenn der Divisor null ist.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        System.out.print("The remainder is: " + 10 % 0);
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte eine ArithmeticException werfen wie folgt:
Exception in thread "main" java.lang.ArithmeticException: / by zero
        at ModuloOperatorDemo.main(ModuloOperatorDemo.java:3)

Gerade Zahlen finden

In diesem Schritt werden wir sehen, wie der Modulo-Operator verwendet werden kann, um zu überprüfen, ob eine Zahl gerade oder ungerade ist.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int[] arr = {7, 5, 2, 4, 6, 19, 18, 25, 22};
        for(int i=0; i<arr.length; i++)
        {
            int num = arr[i];
            if((num % 2) == 0)
                System.out.println(num + " ist gerade.");
            else
                System.out.println(num + " ist nicht gerade.");
        }
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
7 ist nicht gerade.
5 ist nicht gerade.
2 ist gerade.
4 ist gerade.
6 ist gerade.
19 ist nicht gerade.
18 ist gerade.
25 ist nicht gerade.
22 ist gerade.

Sekunden in Minuten und Sekunden umwandeln

In diesem Schritt werden wir sehen, wie der Modulo-Operator verwendet werden kann, um Sekunden in Minuten und Sekunden umzuwandeln.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int seconds = 401;
        int minutes = seconds / 60;
        int remainingSeconds = seconds % 60;
        System.out.print(seconds + " Sekunden entsprechen " + minutes + " Minuten und " + remainingSeconds + " Sekunden");
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
401 Sekunden entsprechen 6 Minuten und 41 Sekunden

Abrufen der einzelnen Ziffern einer ganzen Zahl

In diesem Schritt werden wir sehen, wie der Modulo-Operator verwendet werden kann, um einzelne Ziffern aus einer Zahl zu extrahieren.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int num = 7912064;
        while(num > 0)
        {
            int lastDigit = num % 10;
            num = num / 10;
            System.out.print(lastDigit + " ");
        }
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
4 6 0 2 1 9 7

Etwas alle n-ten Mal wiederholen

In diesem Schritt werden wir sehen, wie der Modulo-Operator verwendet werden kann, um eine Aktion alle n-ten Mal zu wiederholen.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        for(int i = 1; i <= 30; i++)
        {
            if(i % 5 == 0)
                System.out.println("Mache etwas");
        }
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
Mache etwas
Mache etwas
Mache etwas
Mache etwas
Mache etwas
Mache etwas

Eine Zahl auf einen bestimmten Bereich beschränken

In diesem Schritt werden wir sehen, wie der Modulo-Operator verwendet werden kann, um einen Wert auf einen bestimmten Bereich zu beschränken.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        String[] dayNames = {"Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"};
        int dayOfTheMonth1 = 21;
        String dayName1 = dayNames[(dayOfTheMonth1 - 1) % 7];
        int dayOfTheMonth2 = 12;
        String dayName2 = dayNames[(dayOfTheMonth2 - 1) % 7];

        System.out.println(dayOfTheMonth1 + " fällt auf " + dayName1);
        System.out.println(dayOfTheMonth2 + " fällt auf " + dayName2);
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
21 fällt auf Sonntag
12 fällt auf Freitag

Eine Zahl vollständig durch eine andere Zahl teilbar machen

In diesem Schritt werden wir sehen, wie der Modulo-Operator verwendet werden kann, um einen Wert so zu verändern, dass er von einem anderen Wert vollständig teilbar ist.

  1. Öffnen Sie die Datei ModuloOperatorDemo.java in einem Texteditor.
  2. Entfernen Sie den vorhandenen Code und ersetzen Sie ihn durch folgenden Code:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int X = 291;
        int Y = 17;

        int remainder = X % Y;
        X = X - remainder;
        System.out.println("Die minimale Zahl, die subtrahiert werden muss, ist: " + remainder);
        System.out.println("Die Zahl nach der Subtraktion ist: " + X);
    }
}
  1. Speichern Sie die Datei und beenden Sie den Texteditor.
  2. Kompilieren Sie den Code mit dem Befehl javac ModuloOperatorDemo.java.
  3. Führen Sie den Code mit dem Befehl java ModuloOperatorDemo aus.
  4. Der Code sollte die folgende Ausgabe erzeugen:
Die minimale Zahl, die subtrahiert werden muss, ist: 2
Die Zahl nach der Subtraktion ist: 289

Zusammenfassung

Der Modulo-Operator ist ein mathematischer Operator, der verwendet wird, um den Rest der Division zweier Zahlen zu finden. In diesem Lab haben wir verschiedene Anwendungsfälle des Modulo-Operators behandelt, wie zum Beispiel das Überprüfen, ob eine Zahl gerade ist, das Konvertieren von Sekunden in Minuten und Sekunden, das Extrahieren einzelner Ziffern, das Wiederholen einer Aktion alle n-ten Mal, das Beschränken einer Zahl auf einen bestimmten Bereich und das Machen einer Zahl vollständig durch eine andere Zahl teilbar. Denken Sie daran, dass beim Verwenden des Modulo-Operators der Divisor nicht null sein darf, da sonst eine ArithmeticException ausgelöst wird.