Как проверить, является ли число нечетным в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь определять, является ли число нечетным или четным на Java с использованием оператора остатка от деления (modulo operator). Мы рассмотрим концепцию оператора остатка от деления и то, как его результат при делении на 2 позволяет различать нечетные и четные числа.

Путем практических действий вы примените оператор остатка от деления для проверки на нечетность, проверите логику на различных типах чисел и объедините проверки как на четность, так и на нечетность, приобретая практический опыт в использовании условной логики на Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") subgraph Lab Skills java/data_types -.-> lab-559967{{"Как проверить, является ли число нечетным в Java"}} java/operators -.-> lab-559967{{"Как проверить, является ли число нечетным в Java"}} java/if_else -.-> lab-559967{{"Как проверить, является ли число нечетным в Java"}} java/user_input -.-> lab-559967{{"Как проверить, является ли число нечетным в Java"}} end

Применение оператора остатка от деления для проверки на нечетность

На этом этапе мы научимся определять, является ли число нечетным или четным, используя оператор остатка от деления (modulo operator) в Java. Оператор остатка от деления (%) возвращает остаток от деления. Например, 10 % 3 равно 1, потому что при делении 10 на 3 получается 3 с остатком 1.

Число является четным, если оно делится на 2 без остатка, то есть остаток от деления на 2 равен 0. Число является нечетным, если остаток от деления на 2 равен 1.

Создадим новую Java - программу для проверки, является ли число нечетным.

  1. Откройте файл HelloJava.java в редакторе WebIDE, если он еще не открыт.

  2. Замените все содержимое файла следующим кодом:

    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.");: Эта строка выполняется, если число четное.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте модифицированную программу в терминале:

    javac HelloJava.java

    Если ошибок нет, будет создан файл HelloJava.class.

  5. Запустите скомпилированную программу:

    java HelloJava
  6. Программа попросит вас ввести целое число. Введите число (например, 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).

Давайте модифицируем нашу программу для проверки с отрицательными числами.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Текущий код уже считывает целое число. Мы можем использовать тот же код и просто вводить отрицательные числа при запуске программы.

    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();
        }
    }
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте программу еще раз, чтобы убедиться, что у вас есть последняя версия:

    javac HelloJava.java
  5. Запустите программу:

    java HelloJava
  6. Когда программа запросит ввод, введите отрицательное нечетное число (например, -7) и посмотрите на вывод.

    Enter an integer: -7
    -7 is an odd number.

    Вывод правильно определяет -7 как нечетное число, потому что -7 деленное на 2 равно -3 с остатком -1. Поскольку -1 не равно 0, условие if number % 2 != 0 истинно.

  7. Запустите программу еще раз и введите отрицательное четное число (например, -10).

    Enter an integer: -10
    -10 is an even number.

    Вывод правильно определяет -10 как четное число, потому что -10 деленное на 2 равно -5 с остатком 0. Условие if number % 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 содержится правильный код, как показано выше.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Убедитесь, что код соответствует приведенному выше примеру, включая import, использование Scanner, запрос на ввод, считывание целого числа, оператор if-else с проверкой остатка от деления и закрытие сканера.

  3. Сохраните файл, если вы внесли какие - либо изменения (Ctrl+S или Cmd+S).

  4. Скомпилируйте программу в последний раз, чтобы быть уверенными:

    javac HelloJava.java
  5. Запустите программу и протестируйте ее как с нечетными, так и с четными числами (положительными и отрицательными), чтобы убедиться, что она работает как ожидается.

    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 для проверки базовых свойств чисел.