Оператор остатка от деления
Часть раздела Основы путешествия по 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Задание
НовичокНапиши код, который инициализирует три переменные: a (int), b (double) и c (int) со значениями 9, 2.6 и 11 соответственно.
После этого инициализируй следующие переменные:
d (int), которая будет содержать результат деленияaпо модулю2e (int), которая будет содержать результат деленияaпо модулю3f (double), которая будет содержать результат деленияbпо модулю1.5g (double), которая будет содержать результат деленияbпо модулю3.9h (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);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент/декрементПостфиксный инкремент/декрементСокращённые арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Методы System.outФорматирование выводаКласс ScannerПовторение — до 120Повторение — истина или ложь5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 43Переменные. Часть 2
КонстантыСоглашения об именованииПовторение — инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор IfIf — ElseОператор SwitchТернарный операторПовторение: If — ElseВложенный If — Else9Циклы
Цикл for. Часть 1Цикл whileЦикл do whileBreakContinueЦикл for. Часть 2Вложенный циклБесконечный циклПовторение — динамический ввод12Итерация по массивам
Использование цикла forРасширенный цикл forРаспространённые операции с массивамиПотренируйтесь самостоятельно: Онлайн-компилятор Java