【Ruby3.x】Numeric::modulo()メソッドの使い方
moduloメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
moduloメソッドは、RubyのNumericクラスに属し、数値の剰余(じょうよ)を計算するために実行されるメソッドです。このメソッドは、a.modulo(b)のように呼び出され、aをbで割ったときの剰余を返します。ここで重要なのは、計算結果の符号が常に除数bの符号と同じになるという点です。
具体的な挙動を見てみましょう。例えば、7.modulo(3)は1を返します。これは7を3で割ると商が2で余りが1となるためです。負の数を扱う場合、(-7).modulo(3)は2を返します。これは、(-7)を3で割るときの剰余を、除数である3と同じ正の符号を持つように計算した結果です。結果の2は0から3の絶対値未満の範囲(0、1、2)に収まります。
また、7.modulo(-3)は-2を返します。この場合も、除数-3と同じ負の符号を持つ結果が得られます。同様に、(-7).modulo(-3)は-1を返します。
Rubyには剰余を計算する%演算子も存在しますが、moduloメソッドは負の数の扱いで%演算子とは異なる挙動を示します。%演算子の結果は被除数の符号に依存するのに対し、moduloメソッドの結果は除数の符号に依存します。この特性により、moduloメソッドは数学的なモジュロ演算の定義により近い結果を提供するため、特定の範囲内で値が循環するようにしたい場合や、周期的な計算を行う際に特に役立ちます。
構文(syntax)
17.modulo(3)
引数(parameters)
req
- other: Numeric: 割る対象となる数値を指定します
戻り値(return)
Numeric
指定された数値を割ったときの余りを返します。