Java 余り(剰余)計算

Rupam Yadav 2023年10月12日
  1. Java で Math.floorMod() を使用して 2つの数値の余り(剰余)を計算する
  2. Java で%演算子を使用して 2つの数値の余り(剰余)を計算する
Java 余り(剰余)計算

モジュラスまたはモジュロ演算子は、除算後に 2つの整数の余りを返します。これは、偶数かどうかを計算するなどの単純なタスクや、循環配列内の次の書き込み位置を追跡するなどのより複雑なタスクで使用されます。

Java で Math.floorMod() を使用して 2つの数値の余り(剰余)を計算する

Math.floorMod(a,b) 関数は、int 型または long 型の 2つの引数を受け入れます。関数では、a は被除数であり、b は除数です。関数に渡された 2つの引数の床係数を返します。たとえば ab の mod は、0 以上 b 未満の結果を生成します。

以下のコードでは、変数 num1num2 で正確に割り切れます。したがって、余りは 0 です。2 番目のシナリオでは、同じ符号の num3num4 があり、同じ符号の余りのみを与えます。

しかし、被除数 num5 が正で除数 num6 が負である 3 番目のシナリオを考えると、余りは除数の符号を持ちます。同様に、最後のケースの配当では、num7 はまだ負です。結果には、正の約数の符号のみが含まれます。

import java.lang.Math;

public class Main {
  public static void main(String[] args) {
    int num1 = 20, num2 = 4;
    System.out.println(Math.floorMod(num1, num2));

    int num3 = 113, num4 = 30;
    System.out.println(Math.floorMod(num3, num4));

    int num5 = 113, num6 = -30;
    System.out.println(Math.floorMod(num5, num6));

    int num7 = -113, num8 = 30;
    System.out.println(Math.floorMod(num7, num8));
  }
}

出力:

0
23
-7
7

Java で%演算子を使用して 2つの数値の余り(剰余)を計算する

剰余%演算子は、剰余演算にも使用されます。mod と remainder の間には微妙な違いがあります。上記のように、a と b の mod の結果は、常に 0 以上であり、b(除数)よりも小さくなります。

num1%num2 を使用して以下の例を検討すると、num1 が偶数か奇数かを判断します。num1%num2 の余りが 0 に等しい条件の場合、その数は偶数であり、それ以外の場合は奇数です。%演算では、結果は被除数の符号を持ちます。これは、num3 % num2 を取ると表示されます。方程式 -23 % 2 は-1 に等しいため、被除数の符号になります。

同様に、配当が正の場合、結果の剰余は正になります。たとえば、num1 % num4 は正の剰余になります。方程式 17 % -3 は 2 に等しくなります。

public class ModTest {
  public static void main(String args[]) {
    int num1 = 17;
    int num2 = 2;

    boolean result = false;

    if (result = (num1 % num2) == 0) {
      System.out.println("Number " + num1 + " is even");
    } else {
      System.out.println("Number " + num1 + " is odd");
    }

    int num3 = -23;
    int num4 = -3;
    System.out.println("Remainder1: " + num3 % num2);
    System.out.println("Remainder2: " + num1 % num4);
  }
}

出力:

Number 17 is odd
Remainder1: -1
Remainder2: 2
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java Math