Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить, что число чётное

Короткий ответ

Число чётное, если остаток от деления на 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() — Остаток от деления, который всегда имеет знак делителя.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.