Menu
Coddy logo textTech

Modulo Operator

CoddyのJavaジャーニー「基礎」セクションの一部 — レッスン 16/73。

剰余演算子 % は、除算の余りを返します。Javaでは、シンプルな構文で使用されます:

result = dividend % divisor;
  • dividend: 割られる数。
  • divisor: 被除数を割る数。
  • result: 除算の余り。

例えば:

result = 10 % 3;

ここでは、10を3で割っています。3は10の中に3回入り、余りは1になります。したがって、resultは1になります。

被除数(割られる数)が除数(割る数)よりも小さい場合はどうなるでしょうか?その場合、除数は0回入るので、余りは単に被除数そのものになります。例えば、2 % 32に等しくなります。なぜなら、3は2の中に0回入り、2が残るからです。

通常、剰余演算(modulo)は数値が偶数か奇数かを確認するために使用されます:

  • 数値が偶数の場合、2で割ると余りは0になります。
  • 数値が奇数の場合、2で割ると余りは1になります。

浮動小数点数(double型)で剰余演算(modulo)を使用する場合、整数と同様に動作しますが、小数の精度が保持されます。例えば:

double result = 5.5 % 2.0;
// 結果は 1.5 です

仕組みは次のとおりです。5.5の中に2.0は2回入り(4.0)、余りは1.5になります(5.5 - 4.0 = 1.5)。

注意:double 型の値は近似値として格納されるため、一部の余りはわずかな誤差を伴って表示されます。例えば、5.2 % 2.01.2 ではなく 1.2000000000000002 と表示されます。これは浮動小数点の正常な動作であり、コードのミスではありません。

別の例:

double result = 7.5 % 3.5;
// resultは0.5です
challenge icon

チャレンジ

初心者

3つの変数、a (int)b (double)、および c (int) を、それぞれ 92.611 という値で初期化するコードを記述してください。

その後、以下の変数を初期化してください:

  • d (int)a2 で割った剰余を保持します 
  • e (int)a3 で割った剰余を保持します
  • f (double)b1.5 で割った剰余を保持します
  • g (double)b3.9 で割った剰余を保持します
  • h (int)c10 で割った剰余を保持します

結果を確認し、異なる被除数と除数が結果にどのように影響するかを見てみましょう。

自分で試してみよう

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腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン