Введение
В этом практическом занятии (лабораторной работе) вы научитесь определять, является ли число нечетным или четным на Java с использованием оператора остатка от деления (modulo operator). Мы рассмотрим концепцию оператора остатка от деления и то, как его результат при делении на 2 позволяет различать нечетные и четные числа.
Путем практических действий вы примените оператор остатка от деления для проверки на нечетность, проверите логику на различных типах чисел и объедините проверки как на четность, так и на нечетность, приобретая практический опыт в использовании условной логики на Java.
Применить оператор остатка от деления для проверки на нечетность
На этом этапе мы научимся определять, является ли число нечетным или четным, используя оператор остатка от деления (modulo operator) в Java. Оператор остатка от деления (%) возвращает остаток от деления. Например, 10 % 3 равно 1, потому что при делении 10 на 3 получается 3 с остатком 1.
Число является четным, если оно делится на 2 без остатка, то есть остаток от деления на 2 равен 0. Число является нечетным, если остаток от деления на 2 равен 1.
Создадим новую Java - программу для проверки, является ли число нечетным.
Откройте файл
HelloJava.javaв редакторе WebIDE, если он еще не открыт.Замените все содержимое файла следующим кодом:
import java.util.Scanner; public class HelloJava { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter an integer: "); int number = scanner.nextInt(); // Check if the number is odd using the modulo operator if (number % 2 != 0) { System.out.println(number + " is an odd number."); } else { System.out.println(number + " is an even number."); } scanner.close(); } }Рассмотрим новые части кода:
int number = scanner.nextInt();: Эта строка считывает целое число, введенное пользователем, и сохраняет его в переменной с именемnumber.if (number % 2 != 0): Это операторif, который позволяет нашей программе принимать решения. Он проверяет, не равен ли остаток от деленияnumberна 2 нулю. Символ!=означает "не равно".System.out.println(number + " is an odd number.");: Эта строка выполняется, если условие в оператореifистинно (число нечетное).else: Это ключевое слово представляет блок кода, который будет выполнен, если условие в оператореifложно (число четное).System.out.println(number + " is an even number.");: Эта строка выполняется, если число четное.
Сохраните файл (Ctrl+S или Cmd+S).
Скомпилируйте модифицированную программу в терминале:
javac HelloJava.javaЕсли ошибок нет, будет создан файл
HelloJava.class.Запустите скомпилированную программу:
java HelloJavaПрограмма попросит вас ввести целое число. Введите число (например, 7) и нажмите Enter. Программа должна сообщить, является ли число нечетным или четным.
Enter an integer: 7 7 is an odd number.Запустите программу еще раз и введите четное число (например, 10).
Enter an integer: 10 10 is an even number.
Вы успешно использовали оператор остатка от деления и оператор if-else для проверки, является ли число нечетным или четным. Это фундаментальное понятие в программировании для управления потоком выполнения программы на основе условий.
Проверить с использованием различных типов чисел
На предыдущем этапе мы успешно проверили, является ли целое число нечетным или четным. Теперь давайте рассмотрим, как работает оператор остатка от деления (modulo operator) с разными типами чисел, в частности, сосредоточимся на отрицательных целых числах.
Концепция нечетных и четных чисел обычно применяется к целым числам. Однако важно понять, как работает оператор остатка от деления с отрицательными числами в Java, так как его поведение может отличаться от того, что вы ожидаете на основе математических определений.
В Java результат операции остатка от деления (a % b) имеет тот же знак, что и делимое (a).
Давайте модифицируем нашу программу для проверки с отрицательными числами.
Откройте файл
HelloJava.javaв редакторе WebIDE.Текущий код уже считывает целое число. Мы можем использовать тот же код и просто вводить отрицательные числа при запуске программы.
import java.util.Scanner; public class HelloJava { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter an integer: "); int number = scanner.nextInt(); // Check if the number is odd using the modulo operator if (number % 2 != 0) { System.out.println(number + " is an odd number."); } else { System.out.println(number + " is an even number."); } scanner.close(); } }Сохраните файл (Ctrl+S или Cmd+S).
Скомпилируйте программу еще раз, чтобы убедиться, что у вас есть последняя версия:
javac HelloJava.javaЗапустите программу:
java HelloJavaКогда программа запросит ввод, введите отрицательное нечетное число (например, -7) и посмотрите на вывод.
Enter an integer: -7 -7 is an odd number.Вывод правильно определяет -7 как нечетное число, потому что -7 деленное на 2 равно -3 с остатком -1. Поскольку -1 не равно 0, условие
ifnumber % 2 != 0истинно.Запустите программу еще раз и введите отрицательное четное число (например, -10).
Enter an integer: -10 -10 is an even number.Вывод правильно определяет -10 как четное число, потому что -10 деленное на 2 равно -5 с остатком 0. Условие
ifnumber % 2 != 0ложно, и выполняется блокelse.
Это показывает, что наша текущая логика проверки нечетных/четных чисел с использованием оператора остатка от деления работает правильно как для положительных, так и для отрицательных целых чисел в Java. Ключевой момент заключается в том, что остаток от деления нечетного числа на 2 всегда будет не равен нулю (либо 1, либо -1), в то время как остаток от деления четного числа на 2 всегда будет равен 0.
Объединить проверки на четность и нечетность
На предыдущих этапах мы научились использовать оператор остатка от деления (modulo operator) для проверки, является ли число нечетным или четным. Наша текущая программа уже обрабатывает оба случая с использованием оператора if-else.
На этом этапе мы рассмотрим код и убедимся, что понимаем, как структура if-else эффективно объединяет проверки на четность и нечетность чисел.
Вспомним код, который мы использовали на предыдущем этапе:
import java.util.Scanner;
public class HelloJava {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer: ");
int number = scanner.nextInt();
// Check if the number is odd using the modulo operator
if (number % 2 != 0) {
System.out.println(number + " is an odd number.");
} else {
System.out.println(number + " is an even number.");
}
scanner.close();
}
}
Разберем логику еще раз:
- Условие
number % 2 != 0проверяет, не равен ли остаток от деленияnumberна 2 нулю. - Если это условие истинно (
true), значит, число нечетное, и выполняется код внутри блокаif:System.out.println(number + " is an odd number.");. - Если условие
number % 2 != 0ложно (false), значит, остаток равен нулю. В этом случае число должно быть четным, и выполняется код внутри блокаelse:System.out.println(number + " is an even number.");.
Эта структура if-else является очень распространенным способом обработки двух взаимоисключающих возможностей (число либо нечетное, либо четное). Нам не нужно отдельно проверять на четность, потому что если число не нечетное, то оно обязательно четное (для целых чисел).
Чтобы завершить этот этап, просто убедитесь, что в файле HelloJava.java содержится правильный код, как показано выше.
Откройте файл
HelloJava.javaв редакторе WebIDE.Убедитесь, что код соответствует приведенному выше примеру, включая
import, использованиеScanner, запрос на ввод, считывание целого числа, операторif-elseс проверкой остатка от деления и закрытие сканера.Сохраните файл, если вы внесли какие - либо изменения (Ctrl+S или Cmd+S).
Скомпилируйте программу в последний раз, чтобы быть уверенными:
javac HelloJava.javaЗапустите программу и протестируйте ее как с нечетными, так и с четными числами (положительными и отрицательными), чтобы убедиться, что она работает как ожидается.
java HelloJavaПример вывода для нечетного числа:
Enter an integer: 9 9 is an odd number.Пример вывода для четного числа:
Enter an integer: -4 -4 is an even number.
Теперь вы успешно реализовали и проверили Java - программу, которая использует оператор остатка от деления и оператор if-else для определения, является ли целое число нечетным или четным. Этот фундаментальный концепт условной логики является важным для создания более сложных программ.
Резюме
В этом практическом занятии (lab) мы научились определять, является ли число нечетным или четным в Java с использованием оператора остатка от деления (%). Мы выяснили, что число является четным, если остаток от деления на 2 равен 0, и нечетным, если остаток равен 1. Мы реализовали эту логику в Java - программе, которая принимает ввод от пользователя и выводит, является ли число нечетным или четным.
Мы также рассмотрели, как проверить эту проверку с использованием различных типов чисел и как объединить логику проверки на четность и нечетность в одной программе с помощью оператора if-else. Этот практический опыт дал нам понимание условных операторов и оператора остатка от деления в Java для проверки базовых свойств чисел.



