Menu
Coddy logo textTech

Оператор остатка от деления

Часть раздела Основы путешествия по Java на Coddy. Урок 16 из 73.

Оператор modulo % возвращает остаток от деления. В Java он используется с простым синтаксисом:

result = dividend % divisor;
  • dividend: Делимое.
  • divisor: Число, на которое делится dividend.
  • result: Остаток от деления.

Например:

result = 10 % 3;

Здесь 10 делится на 3. 3 укладывается в 10 три раза, при этом остаток равен 1. Поэтому result будет равен 1.

Что, если dividend меньше, чем divisor? В таком случае divisor укладывается 0 раз, поэтому остаток — это просто сам dividend. Например, 2 % 3 равно 2, потому что 3 укладывается в 2 ноль раз, и остаётся 2.

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

  • Если число чётное, при делении на 2 остаток будет равен 0.
  • Если число нечётное, при делении на 2 остаток будет равен 1.

При использовании операции взятия остатка от деления с числами с плавающей точкой (double) она работает аналогично целым числам, но сохраняет десятичную точность. Например:

double result = 5.5 % 2.0;
// result равен 1.5

Вот как это работает: 2.0 укладывается в 5.5 два раза (4.0), а остаток равен 1.5 (5.5 - 4.0 = 1.5).

Примечание: значения double хранятся в виде приближений, поэтому некоторые остатки выводятся с небольшой погрешностью. Например, 5.2 % 2.0 выводит 1.2000000000000002, а не 1.2. Это нормальное поведение чисел с плавающей точкой, а не ошибка в вашем коде.

Ещё один пример:

double result = 7.5 % 3.5;
// result равен 0.5
challenge icon

Задание

Новичок

Напиши код, который инициализирует три переменные: a (int), b (double) и c (int) со значениями 9, 2.6 и 11 соответственно.

После этого инициализируй следующие переменные:

  • d (int), которая будет содержать результат деления a по модулю 2 
  • e (int), которая будет содержать результат деления a по модулю 3
  • f (double), которая будет содержать результат деления b по модулю 1.5
  • g (double), которая будет содержать результат деления b по модулю 3.9
  • h (int), которая будет содержать результат деления c по модулю 10

Проверь результат и посмотри, как разные dividend и divisor влияют на result.

Попробуйте сами

public class Main {
    public static void main(String[] args) {
        // Напишите ваш код ниже
        
        
        // Не изменяйте строки ниже
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
        System.out.println("e = " + e);
        System.out.println("f = " + f);
        System.out.println("g = " + g);
        System.out.println("h = " + h);
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Java