Wie kann ich in Java herausfinden, ob eine Zahl gerade oder ungerade ist?
4 Antworten
![](https://images.gutefrage.net/media/user/shilch/1478025704220_nmmslarge__71_0_450_450_299dcd6eab161896c93d8cdcea61258c.jpg?v=1478025706000)
In Java gibt es, wie in vielen anderen Programmiersprachen auch, den sog. Modulo-Operator. Er wird als Prozentzeichen geschrieben. Dieser wird wie das Divisionszeichen angewendet, gibt stattdessen aber nicht den Quotienten, sondern die Summe zurück.
Anwendungsbeispiel:
10 % 3 = 1; // denn bei 10 / 3 bleibt der Rest 1
12 % 2 = 0; // bei der Division bleibt kein Rest übrig
3.2 % 2 = 1.2; // Der Modulo-Operator funktioniert auch bei Kommazahlen
Konkret bedeutet das für deinen Fall, wenn du eine Zahl auf gerade oder ungerade untersuchen möchtest musst du durch 2 teilen: Alle geraden Zahlen sind durch 2 teilbar, die ungeraden nicht.
Also:
if(x % 2 == 0){
// Zahl ist gerade
} else if (x % 2 == 1) {
// Zahl ist ungerade
} else {
// nicht ganzzahlig
}
Wenn x in diesem Fall ein ganzzahliger Typ ist (char, byte, short, int, long), kann der else-Block natürlich auch ausgelassen werden.
if(x % 2 == 0){
// Zahl ist gerade
} else {
// Zahl ist ungerade
}
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/nesamaxisinho/1455574798010_nmmslarge__32_32_576_576_770ec9f4e6d496fc2e8b31f09d7a2ba3.jpg?v=1455574800000)
z = Deine Zahl
if (z%2==0) {...Anweisung was das Programm machen soll wenn die Zahl gerade ist}
Wenn du stattdessen prüfen willst ob die Zahl ungerade ist, mach aus dem Gleichheitsoperator einen Ungleichoperator
![](https://images.gutefrage.net/media/default/user/10_nmmslarge.png?v=1551279448000)
boolean isEven = (x % 2) == 0;
![](https://images.gutefrage.net/media/default/user/7_nmmslarge.png?v=1438863662000)
Nur mal so als Tipp: http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/java_modulo_de