Modulo Operator
Часть раздела Основы путешествия по PHP на Coddy — урок 16 из 71.
Оператор остатка от деления (%) возвращает остаток после деления. Когда вы делите одно число на другое, этот оператор возвращает то, что осталось.
<?php
echo 10 % 3; // Выводит: 1
?>Здесь 10, разделенное на 3, равно 3 с остатком 1. Оператор взятия остатка (modulo) возвращает этот остаток.
Обычное использование остатка от деления — проверка числа на четность или нечетность. При делении на 2 возможными остатками являются только 0 или 1 — поэтому, если число, деленное на 2, не имеет остатка, оно четное; если остаток равен 1, оно нечетное:
<?php
$number = 8;
echo $number % 2; // Выводит: 0 (четное)
$number = 7;
echo $number % 2; // Выводит: 1 (нечетное)
?>Это работает только для проверки на четность/нечетность, потому что деление на 2 всегда дает остаток 0 или 1. С другими делителями остаток может быть любым значением от 0 до числа, на единицу меньшего, чем делитель.
Больше примеров, которые помогут вам понять этот паттерн:
<?php
echo 15 % 4; // Выводит: 3 (15 = 4*3 + 3)
echo 20 % 5; // Выводит: 0 (20 = 5*4 + 0)
$dividend = 17;
$divisor = 5;
echo $dividend % $divisor; // Выводит: 2 (17 = 5*3 + 2)
?>Задание
ЛегкоПрочитайте два числа из ввода: делимое и делитель.
Вычислите и выведите остаток от деления первого числа на второе.
Пример:
Если на вход подаются 17 и 5, результатом должно быть 2 (так как 17 ÷ 5 = 3 с остатком 2).
Попробуйте сами
<?php
// Чтение входных данных
$dividend = intval(fgets(STDIN));
$divisor = intval(fgets(STDIN));
// TODO: Напишите ниже ваш код для вычисления остатка от деления
// Вывод результата
echo $remainder;
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators