Modulo Operator
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 16/71。
剰余演算子 (%) は、除算の後の余りを返します。ある数値を別の数値で割ったとき、剰余演算子は残った値を返します。
<?php
echo 10 % 3; // 出力: 1
?>ここでは、10を3で割ると3になり、余りは1です。剰余演算子はその余りを返します。
剰余演算(モジュロ)の一般的な用途は、数値が偶数か奇数かを確認することです。2で割った場合、考えられる余りは 0 または 1 のみです。つまり、数値を2で割って余りがない場合は偶数であり、余りが1の場合は奇数です。
<?php
$number = 8;
echo $number % 2; // 出力: 0 (偶数)
$number = 7;
echo $number % 2; // 出力: 1 (奇数)
?>これが偶数/奇数の判定にのみ有効なのは、2で割った時の余りが常に0か1のいずれかになるからです。他の除数の場合、余りは0からその除数より1小さい値までの任意の数値になる可能性があります。
このパターンを理解するのに役立つ、その他の例をいくつか紹介します:
<?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)
?>チャレンジ
簡単入力から2つの数値(被除数と除数)を読み取ります。
最初の数値を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 Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators