Как проверить, что число чётное
Короткий ответ
Число чётное, если остаток от деления на 2 равен нулю:
void main() {
int number = 14;
IO.println(number % 2 == 0);
}Результат:
trueМетод
Вынесите проверку в метод и примените к нескольким числам:
boolean isEven(int n) {
return n % 2 == 0;
}
void main() {
for (int n : new int[] {3, 8, 0, -4}) {
IO.println(n + " " + (isEven(n) ? "even" : "odd"));
}
}Результат:
3 odd
8 even
0 even
-4 evenОтфильтровать чётные
В потоке проверка становится условием filter():
void main() {
var evens = IntStream.rangeClosed(1, 10).filter(n -> n % 2 == 0).boxed().toList();
IO.println(evens);
}Результат:
[2, 4, 6, 8, 10]Частая ошибка
Проверять нечётность через n % 2 == 1. Для отрицательных чисел остаток отрицательный, и проверка ошибается:
void main() {
int n = -3;
IO.println(n % 2);
IO.println(n % 2 == 1);
IO.println(n % 2 != 0);
}Результат:
-1
false
trueПишите n % 2 != 0 или Math.floorMod(n, 2) == 1.
Функции из этого ответа
- % — Возвращает остаток от деления.
- Math.floorMod() — Остаток от деления, который всегда имеет знак делителя.