剰余演算子
CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 16/71。
剰余演算子(%)は、割り算の後の余りを返します。ある数を別の数で割ると、剰余演算子は余った分を返します。
<?php
echo 10 % 3; // 出力: 1
?>ここでは、10を3で割ると、商は3で余りは1になります。剰余演算子はその余りを返します。
剰余演算の一般的な使い方は、数が偶数か奇数かを調べることです。2で割ったとき、偶数の余りは0、奇数の余りは1です(奇数が負の場合は-1)。そのため、数を2で割って余りがなければ偶数、そうでなければ奇数です。
<?php
$number = 8;
echo $number % 2; // 出力: 0(偶数)
$number = 7;
echo $number % 2; // 出力: 1(奇数)
?>これは偶数か奇数かの判定でのみ機能します。2で割ると、余りは必ず0または1になるためです(負の奇数の場合は-1になります)。他の除数では、両方の数が正の場合、余りは0から除数より1小さい値までのいずれかになります。結果の符号は割られる数の符号と同じになるため、-17 % 5は-2です。
パターンを理解するための例をさらに紹介します。
<?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;
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ