JavaScript剰余演算子

概要: このチュートリアルでは、JavaScript剰余演算子(%)を使用して、ある数値を別の数値で除算した剰余を取得する方法を学習します。

JavaScript剰余演算子の紹介

JavaScriptでは、%を使用して剰余演算子を表現します。剰余演算子は、ある値を別の値で除算した際に残る剰余を返します。

剰余演算子の構文は以下のとおりです。

dividend % divisor

剰余の計算式は以下のとおりです。

dividend = divisor * quotient + remainder
where |remainder| < |divisor|

この式では、被除数除数剰余はすべて整数です。剰余の符号は被除数の符号と同じです。

剰余の符号は被除数の符号と同じです。

JavaScript剰余演算子の例

JavaScript剰余演算子の使用方法の例を見てみましょう。

1) 正の被除数を使用した剰余演算子の例

次の例は、正の被除数で剰余演算子を使用する方法を示しています。

let remainder = 5 % -2;
console.log(remainder); // 1

remainder = 5 % 2;
console.log(remainder); // 1Code language: JavaScript (javascript)

2) 負の被除数を使用した剰余演算子の例

次の例は、負の被除数で剰余演算子を使用する方法を示しています。

let remainder = -5 % 3;
console.log(remainder); // -2

remainder = -5 % -3;
console.log(remainder); // -2Code language: JavaScript (javascript)

3) 剰余演算子の特殊値の使用

被除数がInfinityで、除数が有限数の場合、剰余はNaNになります。例:

let remainder = Infinity % 2;
console.log(remainder); // NaNCode language: JavaScript (javascript)

被除数が有限数で、除数が0の場合、剰余はNaNになります。

let remainder = 10 % 0;
console.log(remainder); // NaNCode language: JavaScript (javascript)

被除数と除数の両方がInfinityの場合、剰余はNaNになります。

let remainder = Infinity % Infinity;
console.log(remainder); // NaNCode language: JavaScript (javascript)

被除数が有限数で、除数がInfinityの場合、剰余は被除数になります。例:

let remainder = 10 % Infinity;
console.log(remainder); // 10Code language: JavaScript (javascript)

被除数が0で、除数が0以外の場合、剰余は0になります。

let remainder = 0 % 10;
console.log(remainder); // 0Code language: JavaScript (javascript)

被除数または除数のいずれかが数値でない場合、Number()関数を使用して数値に変換され、上記の規則が適用されます。例:

let remainder = '10' % 3;
console.log(remainder); // 1Code language: JavaScript (javascript)

剰余演算子を使用して数値が奇数かどうかを確認する

数値が奇数かどうかを確認するには、次の例のように剰余演算子(%)を使用します。

let num = 13;
let isOdd = num % 2;Code language: JavaScript (javascript)

この例では、numが奇数の場合は剰余が1になり、numが偶数の場合は剰余が0になります。

後で、数値が奇数の場合はtrue、そうでない場合はfalseを返す関数の定義方法を学習します。

function isOdd(num) {
  return num % 2;
}Code language: JavaScript (javascript)

または、ES6のアロー関数を使用します。

const isOdd = (num) => num % 2;Code language: JavaScript (javascript)

剰余演算子とモジュロ演算子

JavaScriptでは、剰余演算子(%)はモジュロ演算子ではありません。

Pythonを使用してきた場合、%はこの言語ではモジュロ演算子を意味すると感じるかもしれません。しかし、JavaScriptではそうではありません。

JavaScriptでモジュロ演算子を取得するには、次の式を使用します。

((dividend % divisor) + divisor) % divisor

または、関数でラップします。

const mod = (dividend, divisor) => ((dividend % divisor) + divisor) % divisor;Code language: JavaScript (javascript)

被除数と除数の符号が同じ場合、剰余演算子とモジュロ演算子は同じ結果を返します。そうでない場合、異なる結果を返します。

例:

const mod = (dividend, divisor) => ((dividend % divisor) + divisor) % divisor;

// dividen and divisor have the same sign
console.log('remainder:', 5 % 3); // 2
console.log('modulo:', mod(5, 3)); // 2

// dividen and divisor have the different signs
console.log('remainder:', -5 % 3); // -2
console.log('modulo:', mod(-5, 3)); // 1
Code language: JavaScript (javascript)

出力

remainder: 2
modulo: 2
remainder: -2
modulo: 1Code language: HTTP (http)

まとめ

  • JavaScript剰余演算子(%)を使用して、ある値を別の値で除算した剰余を取得します。
このチュートリアルは役に立ちましたか?