Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Integer::modulo()メソッドの使い方

moduloメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

moduloメソッドは、Rubyの組み込みクラスであるIntegerクラスに属するメソッドで、整数を別の整数で割ったときの剰余(余り)を計算し、その結果を取得するメソッドです。

このメソッドの最大の特徴は、計算結果として返される剰余(余り)の符号が、除数(割る数)の符号と常に一致するという点です。これは、プログラミングにおいて剰余を求める際に一般的に使われる % 演算子や remainder メソッドが、それぞれ被除数(割られる数)の符号と一致する結果や0に近い結果を返すのとは異なる挙動を示します。

具体的な例を挙げると、7.modulo(3)1 を返します。一方、(-7).modulo(3) の場合、除数である 3 が正の数のため、結果は 2 となります((-7) = 3 × (-3) + 2)。また、7.modulo(-3) では、除数である -3 が負の数のため、結果は -2 となります(7 = (-3) × (-3) - 2)。さらに、(-7).modulo(-3) の場合は、除数が負の -3 なので、結果は -1 となります((-7) = (-3) × 2 - 1)。

このように、modulo メソッドは剰余の符号を厳密に制御したい場合に非常に有用です。ただし、除数に 0 を指定した場合は ZeroDivisionError が発生しますので注意が必要です。システム開発において、日付計算の周期処理や配列のインデックスを循環させる際など、剰余の符号が計算結果に影響を与える場面で活用されます。

構文(syntax)

110.modulo(3)

引数(parameters)

req

  • other: Integer: 割られる数(被除数)を指定する整数

戻り値(return)

Integer

Integerクラスのmoduloメソッドは、レシーバー(メソッドを呼び出した整数)を引数(整数)で割ったときの余りを整数で返します。

関連コンテンツ

関連プログラミング言語