
В Java проверка числа на четность или нечетность обычно выполняется с использованием оператора остатка от деления (%). Если выражение число % 2 == 0 возвращает true, число считается четным, в противном случае – нечетным. Этот метод работает для всех целочисленных типов данных, включая int и long.
Для чисел типа int и long важно учитывать переполнение при арифметических операциях. Даже при больших значениях оператор % корректно определяет остаток, поэтому он подходит для диапазонов от -2³¹ до 2³¹-1 для int и от -2⁶³ до 2⁶³-1 для long.
Альтернативный способ проверки – использование побитового оператора AND (&). Выражение число & 1 возвращает 0 для четного числа и 1 для нечетного. Этот метод может быть полезен при необходимости минимизировать вычисления в циклах или при работе с большим объемом данных.
При работе с отрицательными числами результат операции % может быть отрицательным, поэтому для точной проверки четности лучше использовать Math.abs(число) % 2. Это гарантирует, что логика останется корректной вне зависимости от знака числа.
Практическое применение проверки четности включает фильтрацию элементов в массивах, обработку счетчиков циклов и формирование условий в алгоритмах, где необходимо разделение чисел на четные и нечетные группы.
Использование оператора остатка (%) для проверки числа

Примеры использования в коде:
- Проверка одиночного числа:
int n = 7; if (n % 2 == 0) { System.out.println("Четное"); } else { System.out.println("Нечетное"); } - Фильтрация массива чисел:
int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) { if (num % 2 == 0) { System.out.println(num + " - четное"); } } - Использование в методах:
public static boolean isEven(int number) { return number % 2 == 0; }
Особенности работы с отрицательными числами:
- Оператор % сохраняет знак делимого: -4 % 2 == 0, -3 % 2 == -1.
- Для единообразной проверки рекомендуется использовать Math.abs(number) % 2.
Рекомендации при использовании %:
- Не применять для чисел с плавающей запятой при проверке четности – результат может быть неожиданным.
- В циклах и фильтрах массивов этот оператор обеспечивает минимальные вычислительные затраты.
- Комбинируя с условными конструкциями, можно создавать компактные и читаемые проверки для любого целочисленного типа.
Определение четности для переменных типа int и long

Переменные типа int занимают 4 байта и поддерживают диапазон от -2³¹ до 2³¹-1. Проверка четности осуществляется через выражение n % 2 == 0. Этот способ корректно работает для отрицательных и положительных значений.
Пример для int:
int number = -12;
if (number % 2 == 0) {
System.out.println("Число четное");
} else {
System.out.println("Число нечетное");
}
Переменные типа long занимают 8 байт и поддерживают диапазон от -2⁶³ до 2⁶³-1. Проверка четности идентична int, но требуется указание суффикса L при присвоении больших чисел.
Пример для long:
long bigNumber = 9223372036854775806L;
if (bigNumber % 2 == 0) {
System.out.println("Число четное");
} else {
System.out.println("Число нечетное");
}
Рекомендации при работе с int и long:
- Для циклов с большим диапазоном используйте long, чтобы избежать переполнения.
- Для метода проверки четности можно создать универсальный статический метод, принимающий long, чтобы поддерживать оба типа.
- Используйте Math.abs, если необходимо исключить влияние отрицательных чисел на результат проверки.
Проверка четности числа с помощью методов класса Integer

Класс Integer предоставляет методы для работы с целыми числами, включая проверку четности через конвертацию и вспомогательные функции. Основной метод – Integer.remainderUnsigned(int dividend, int divisor), который позволяет корректно вычислять остаток для положительных и больших чисел.
Пример использования метода для проверки четности:
int n = 15;
if (Integer.remainderUnsigned(n, 2) == 0) {
System.out.println("Четное число");
} else {
System.out.println("Нечетное число");
}
Метод Integer.valueOf можно использовать для автоматической упаковки числа в объект, после чего применять методы для анализа:
Integer number = Integer.valueOf(28); boolean isEven = number.intValue() % 2 == 0; System.out.println(isEven ? "Четное" : "Нечетное");
Сравнительная таблица методов для проверки четности:
| Метод | Тип числа | Особенности |
|---|---|---|
| n % 2 | int, long | Прямой, поддерживает отрицательные и положительные значения |
| Integer.remainderUnsigned(n, 2) | int | Корректная обработка больших положительных чисел |
| Integer.valueOf(n).intValue() % 2 | int | Упаковка в объект, подходит для использования с коллекциями |
Рекомендации:
- Для больших массивов или коллекций чисел удобнее использовать методы класса Integer, чтобы избежать прямых арифметических операций на примитивах.
- При необходимости анализа знака числа используйте Math.abs вместе с методами Integer.
- Методы класса полезны для интеграции проверки четности в существующие объектно-ориентированные структуры данных.
Обработка отрицательных чисел при проверке на четность

В Java оператор % сохраняет знак делимого. Например, -5 % 2 возвращает -1, а -4 % 2 – 0. Для корректного определения четности отрицательных чисел важно учитывать знак результата.
Наиболее надежный способ – использовать Math.abs:
int number = -7;
if (Math.abs(number) % 2 == 0) {
System.out.println("Четное число");
} else {
System.out.println("Нечетное число");
}
Применение побитового оператора & также работает для отрицательных чисел, так как проверка number & 1 возвращает 0 для четных и 1 для нечетных чисел независимо от знака:
int number = -8;
if ((number & 1) == 0) {
System.out.println("Четное число");
} else {
System.out.println("Нечетное число");
}
Рекомендации при работе с отрицательными числами:
- Использовать Math.abs(number) % 2 для прямого и понятного результата.
- Побитовые операции & обеспечивают более быструю проверку в больших циклах.
- Для методов класса Integer предварительно применять Math.abs, если необходимо единообразие при проверке чисел с разными знаками.
Использование побитового оператора & для проверки числа
Побитовый оператор & позволяет проверять четность числа без использования деления. Выражение number & 1 возвращает 0 для четных чисел и 1 для нечетных, что делает его быстрым инструментом для анализа целых чисел.
Примеры использования:
- Проверка одиночного числа:
int n = 10; if ((n & 1) == 0) { System.out.println("Четное число"); } else { System.out.println("Нечетное число"); } - Фильтрация массива чисел:
int[] numbers = {3, 4, 5, 6}; for (int num : numbers) { if ((num & 1) == 0) { System.out.println(num + " - четное"); } } - Использование в методе:
public static boolean isEven(int number) { return (number & 1) == 0; }
Преимущества побитового метода:
- Работает корректно для отрицательных чисел без дополнительной обработки.
- Не требует деления, что ускоряет выполнение в циклах с большим количеством элементов.
- Подходит для int и long при приведении типов.
Рекомендации:
- Для больших массивов и высоконагруженных циклов использовать & вместо % для минимизации вычислительных затрат.
- Комбинировать с методами класса Integer для интеграции в объектно-ориентированные структуры.
- Для универсальных проверок создать вспомогательный метод, который принимает int или long и возвращает логическое значение четности.
Примеры условий if и циклов для работы с четными числами
Проверка четности через условие if позволяет выполнять разные действия в зависимости от результата:
int number = 12;
if (number % 2 == 0) {
System.out.println("Число четное");
} else {
System.out.println("Число нечетное");
}
Пример использования цикла for для обработки четных чисел в массиве:
int[] numbers = {1, 2, 3, 4, 5, 6};
for (int num : numbers) {
if (num % 2 == 0) {
System.out.println(num + " - четное");
}
}
Использование цикла while для последовательной обработки четных чисел:
int i = 0;
while (i <= 10) {
if ((i & 1) == 0) {
System.out.println(i + " - четное");
}
i++;
}
Рекомендации при работе с циклами:
- Для массивов и списков использовать for-each, чтобы избежать ошибок индексации.
- В больших диапазонах чисел предпочтительнее использовать побитовый оператор & для ускорения проверки.
- Объединять условия с другими фильтрами для сложной логики обработки чисел.
Вопрос-ответ:
Можно ли использовать оператор % для проверки четности отрицательных чисел в Java?
Да, оператор % работает с отрицательными числами, но результат сохраняет знак делимого. Например, -5 % 2 вернет -1, а -4 % 2 вернет 0. Чтобы получить универсальное поведение для проверки четности, часто используют Math.abs(number) % 2, что позволяет игнорировать знак числа.
Чем проверка четности через побитовый оператор & отличается от использования %?
Побитовый оператор & проверяет младший бит числа: (number & 1) возвращает 0 для четных и 1 для нечетных чисел. Это работает быстрее, так как не требует деления. Метод сохраняет корректность для отрицательных чисел и подходит для больших массивов или циклов, где важна скорость вычислений.
Как правильно проверять четность переменной типа long в Java?
Для long проверка выполняется так же, как для int: number % 2 == 0 или (number & 1) == 0. При присвоении больших значений следует добавлять суффикс L, например, long bigNumber = 9223372036854775806L. Оба способа работают с отрицательными и положительными числами.
Можно ли использовать методы класса Integer для определения четности числа?
Да, методы класса Integer, такие как Integer.remainderUnsigned или упаковка через Integer.valueOf, позволяют получать остаток от деления и проверять четность. Это удобно при работе с коллекциями или объектами, где числа хранятся как объекты, а не как примитивы.
Как фильтровать только четные числа в массиве с помощью циклов?
Для фильтрации массива используют цикл for или for-each и проверку четности внутри цикла. Например, for (int num : numbers) { if (num % 2 == 0) { System.out.println(num); } } Можно заменить % на побитовый &, что ускоряет обработку при больших массивах. Для отрицательных чисел можно применять Math.abs, чтобы сохранить корректность результата.
