Bleibt bei einer Division ein Rest übrig, hilft dir der Modulo-Operator in Java dabei, diesen Wert präzise zu berechnen. Er arbeitet ver­läss­li­cher als manuelle Re­chen­we­ge und ist besonders praktisch, um etwa zu prüfen, ob Zahlen gerade oder ungerade sind.

So nutzt du den Modulo-Operator in Java

In gängigen Pro­gram­mier­spra­chen nutzt du die klas­si­schen Grund­re­chen­ar­ten wie Addition oder Division. Mit den passenden Java-Ope­ra­to­ren löst du so auch komplexe Aufgaben. Speziell bei der Division kommt es jedoch oft vor, dass kein glattes Ergebnis entsteht. Di­vi­dierst du zwei Ganz­zah­len, bleibt häufig ein Restwert stehen. Teilst du bei­spiels­wei­se 11 durch 4, ergibt das 2 mit einem Rest von 3 (2 x 4 = 8, 11 - 8 = 3). Ohne saubere Lösung kann das beim Pro­gram­mie­ren zu Fehlern führen.

In Java gibt es dafür den Modulo-Operator. Er ermittelt gezielt den **Restwert nach der Division zweier Zahlen**. Dieses Werkzeug ist in vielen Szenarien es­sen­zi­ell – etwa um zu checken, ob eine Zahl gerade ist oder ob es sich um eine Primzahl handelt. Manuelle Umwege zur Rest­wert­ermitt­lung funk­tio­nie­ren zwar theo­re­tisch, stoßen aber in der Praxis schnell an ihre Grenzen, wie das folgende Beispiel zeigt.

Warum ist der Rest­wert­ope­ra­tor wichtig?

Ver­ein­facht gesagt prüft man bei einer Division, wie oft der Divisor in den Di­vi­den­den passt. Das Resultat ist der Quotient. Wenn Dividend und Divisor beide als pri­mi­ti­ver Java-Datentyp int hin­ter­legt sind, lässt sich der Rest auch ohne Modulo berechnen. Der Code sähe dann so aus:

public class Main {
	public static void main(String[] args) {
	int dividend = 11;
	int divisor = 4;
	int restwert = dividend - (divisor * (dividend / divisor));
	System.out.println("Der Restwert ist: " + restwert);
	}
}
java

Mit dem Java-Befehl System.out.println erhältst du diese Ausgabe:

Der Restwert ist: 3
java

Dieser Weg ist zwar möglich, aber um­ständ­lich. Richtig pro­ble­ma­tisch wird es, wenn einer der Operanden vom Typ float oder double (Gleit­kom­ma-Datentyp) ist. Dann liefert die gleiche Rechnung plötzlich ein ungenaues Ergebnis:

public class Main {
	public static void main(String[] args) {
	int dividend = 11;
	double divisor = 4;
	double restwert = dividend - (divisor * (dividend / divisor));
	System.out.println("Der Restwert ist: " + restwert);
	}
}
java
Der Restwert ist: 0.0
java

Syntax und Logik von Java Modulo

Der Modulo-Operator hingegen liefert dir immer den exakten Restwert. Er führt die Division im Hin­ter­grund aus, gibt aber statt des Quo­ti­en­ten nur den ver­blei­ben­den Rest aus. Er wird durch das Pro­zent­zei­chen sym­bo­li­siert, die Syntax ist denkbar einfach:

Dividend % Divisor
java

Über­tra­gen auf unser Beispiel funk­tio­niert Java Modulo so:

public class Main {
	public static void main(String[] args) {
	int dividend = 11;
	double divisor = 4;
	double restwert = dividend % divisor;
	System.out.println("Der Restwert ist: " + restwert);
	}
}
java

Die Ausgabe ist klar:

Der Restwert ist: 3.0
java

Gerade und ungerade Zahlen iden­ti­fi­zie­ren

Mit Java Modulo findest du leicht heraus, ob eine Zahl gerade ist. Die Logik dahinter: Teilst du eine Zahl durch 2 und der Rest ist 0, handelt es sich um eine gerade Zahl. An­dern­falls ist sie ungerade. Das lässt sich prima mit einer if-else-Anweisung umsetzen:

public class Main {
	public static void main(String[] args) {
	int dividend = 11;
	if (dividend % 2 == 0) {
	System.out.println("Bei " + dividend + " handelt es sich um eine gerade Zahl.");
	}
	else {
	System.out.println("Bei " + dividend + " handelt es sich um eine ungerade Zahl.");
	}
	}
}
java

Das Ergebnis sieht wie erwartet so aus:

Bei 11 handelt es sich um eine ungerade Zahl.
java

Modulo bei negativen Werten

Natürlich lässt sich der Restwert auch bei negativen Zahlen bestimmen. Hier ein Beispiel dazu:

public class Main {
	public static void main(String[] args) {
	int dividend = -11;
	int divisor = 4;
	int restwert = dividend % divisor;
	System.out.println("Der Restwert ist: " + restwert);
	}
}
java

Ist der Dividend negativ, fällt auch der Restwert negativ aus. Die Ausgabe lautet:

Der Restwert ist: -3
java
Zum Hauptmenü