Как проверить, делится ли одно число на другое в Java

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

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

Введение

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

Вы будете практиковать использование оператора остатка от деления с разными числами и делителями, а также узнаете, как обрабатывать особый случай деления на ноль, чтобы избежать ошибок в своих 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/operators("Operators") java/BasicSyntaxGroup -.-> java/variables("Variables") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/output("Output") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") subgraph Lab Skills java/operators -.-> lab-559961{{"Как проверить, делится ли одно число на другое в Java"}} java/variables -.-> lab-559961{{"Как проверить, делится ли одно число на другое в Java"}} java/if_else -.-> lab-559961{{"Как проверить, делится ли одно число на другое в Java"}} java/output -.-> lab-559961{{"Как проверить, делится ли одно число на другое в Java"}} java/exceptions -.-> lab-559961{{"Как проверить, делится ли одно число на другое в Java"}} end

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

На этом этапе мы рассмотрим, как использовать оператор остатка от деления (%) в Java для проверки делимости. Оператор остатка от деления возвращает остаток от деления. Если остаток от деления равен 0, это означает, что число нацело делится на делитель.

Создадим новую Java - программу, чтобы продемонстрировать это.

  1. Откройте каталог ~/project в проводнике файлов слева.

  2. Щелкните правой кнопкой мыши в пустом пространстве внутри каталога ~/project и выберите "Новый файл".

  3. Назовите новый файл DivisibilityCheck.java.

  4. Откройте файл DivisibilityCheck.java в редакторе кода.

  5. Скопируйте и вставьте следующий код в редактор:

    public class DivisibilityCheck {
        public static void main(String[] args) {
            int number = 10;
            int divisor = 2;
    
            // Use the modulo operator to check for divisibility
            if (number % divisor == 0) {
                System.out.println(number + " is divisible by " + divisor);
            } else {
                System.out.println(number + " is not divisible by " + divisor);
            }
    
            number = 11;
            divisor = 3;
    
            if (number % divisor == 0) {
                System.out.println(number + " is divisible by " + divisor);
            } else {
                System.out.println(number + " is not divisible by " + divisor);
            }
        }
    }

    Рассмотрим новые части кода:

    • int number = 10;: Эта строка объявляет целочисленную переменную с именем number и присваивает ей значение 10.
    • int divisor = 2;: Эта строка объявляет целочисленную переменную с именем divisor и присваивает ей значение 2.
    • number % divisor: Это операция взятия остатка от деления. Она вычисляет остаток от деления number на divisor.
    • if (number % divisor == 0): Это оператор if. Он проверяет, равен ли результат операции взятия остатка от деления 0. Если это так, выполняется код внутри блока if.
    • else: Если условие в операторе if ложно (остаток от деления не равен 0), выполняется код внутри блока else.
  6. Сохраните файл (Ctrl+S или Cmd+S).

  7. Откройте терминал внизу WebIDE. Убедитесь, что вы находитесь в каталоге ~/project. Если нет, введите cd ~/project и нажмите Enter.

  8. Скомпилируйте Java - программу, введя следующую команду и нажав Enter:

    javac DivisibilityCheck.java

    Если нет ошибок, вы не увидите никакого вывода. В каталоге ~/project будет создан файл DivisibilityCheck.class.

  9. Запустите скомпилированную Java - программу, введя следующую команду и нажав Enter:

    java DivisibilityCheck

    Вы должны увидеть следующий вывод:

    10 is divisible by 2
    11 is not divisible by 3

Этот вывод подтверждает, что наша программа правильно использовала оператор остатка от деления для проверки делимости.

Тестирование с разными делителями

На предыдущем этапе мы проверили делимость 10 на 2 и 11 на 3. Теперь изменим нашу программу, чтобы проверить делимость с разными числами и делителями и увидеть, как работает оператор остатка от деления.

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

  2. Добавим несколько примеров в метод main. Добавьте следующие строки кода перед закрывающей фигурной скобкой } метода main:

            System.out.println("\nTesting with different numbers:");
    
            number = 15;
            divisor = 5;
            if (number % divisor == 0) {
                System.out.println(number + " is divisible by " + divisor);
            } else {
                System.out.println(number + " is not divisible by " + divisor);
            }
    
            number = 20;
            divisor = 7;
            if (number % divisor == 0) {
                System.out.println(number + " is divisible by " + divisor);
            } else {
                System.out.println(number + " is not divisible by " + divisor);
            }
    
            number = 100;
            divisor = 10;
            if (number % divisor == 0) {
                System.out.println(number + " is divisible by " + divisor);
            } else {
                System.out.println(number + " is not divisible by " + divisor);
            }

    Мы добавили три новых проверки с разными значениями для number и divisor. Строка System.out.println("\nTesting with different numbers:"); просто добавляет пустую строку и заголовок, чтобы вывод был более понятным.

  3. Сохраните измененный файл DivisibilityCheck.java (Ctrl+S или Cmd+S).

  4. Откройте терминал и убедитесь, что вы находитесь в каталоге ~/project.

  5. Скомпилируйте обновленную Java - программу:

    javac DivisibilityCheck.java

    Опять же, если компиляция прошла успешно, вы не увидите никакого вывода.

  6. Запустите скомпилированную программу, чтобы увидеть результаты с новыми тестовыми случаями:

    java DivisibilityCheck

    Теперь вы должны увидеть вывод с предыдущего этапа, за которым следует вывод с новыми тестовыми случаями:

    10 is divisible by 2
    11 is not divisible by 3
    
    Testing with different numbers:
    15 is divisible by 5
    20 is not divisible by 7
    100 is divisible by 10

Добавив эти тестовые случаи, вы можете увидеть, как оператор остатка от деления правильно определяет, делится ли одно число нацело на другое. Это фундаментальное понятие, используемое во многих программировании задач, таких как проверка на четность или нечетность чисел или выполнение действий с регулярными интервалами.

Обработка деления на ноль

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

Давайте изменим нашу программу DivisibilityCheck.java, чтобы включить проверку на деление на ноль.

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

  2. Мы добавим новый тестовый случай, где делитель равен 0. Добавьте следующий код перед закрывающей фигурной скобкой } метода main:

            System.out.println("\nTesting division by zero:");
    
            number = 10;
            divisor = 0;
    
            if (divisor == 0) {
                System.out.println("Error: Division by zero is not allowed.");
            } else if (number % divisor == 0) {
                System.out.println(number + " is divisible by " + divisor);
            } else {
                System.out.println(number + " is not divisible by " + divisor);
            }

    Вот что мы добавили:

    • if (divisor == 0): Это новый оператор if, который проверяет, равен ли переменная divisor 0.
    • System.out.println("Error: Division by zero is not allowed.");: Если делитель равен 0, эта строка выводит сообщение об ошибке.
    • else if (number % divisor == 0): Это оператор else if. Он проверяется только в том случае, если первое условие if (divisor == 0) ложно. Именно здесь мы выполняем проверку остатка от деления, но только если делитель не равен нулю.
  3. Сохраните измененный файл DivisibilityCheck.java.

  4. Откройте терминал и убедитесь, что вы находитесь в каталоге ~/project.

  5. Скомпилируйте обновленную Java - программу:

    javac DivisibilityCheck.java
  6. Запустите скомпилированную программу:

    java DivisibilityCheck

    Вы должны увидеть вывод с предыдущих этапов, за которым следует вывод для тестового случая деления на ноль:

    10 is divisible by 2
    11 is not divisible by 3
    
    Testing with different numbers:
    15 is divisible by 5
    20 is not divisible by 7
    100 is divisible by 10
    
    Testing division by zero:
    Error: Division by zero is not allowed.

Добавив проверку if (divisor == 0), мы сделали нашу программу более надежной, предотвратив потенциальную ошибку при делении на ноль. Это важный аспект написания надежного кода.

Резюме

В этом практическом занятии (лабораторной работе) мы научились проверять, делится ли одно число на другое в Java с использованием оператора остатка от деления (%). Мы создали Java - программу DivisibilityCheck.java и использовали оператор if для проверки, равен ли остаток от деления (number % divisor) нулю. Если остаток равен 0, то число делится на делитель. Мы продемонстрировали это на примерах, когда число делится и когда не делится.