はじめてのRuby!upto、downtoを使った簡単な繰り返し

upto、downtoメソッドを使用すると、オブジェクトに格納されている値から指定した最大値・最小値になるまで繰り返し処理を行うことができます。

「uptoメソッドを使用して最大値になるまで繰り返し処理をしたい」
「downtoメソッドを使用して最小値になるまで繰り返し処理をしたい」

そこで、この記事ではuptoメソッド、downtoメソッドについて解説していきます。


uptoメソッドとは
uptoメソッドの使い方
downtoメソッドとは
downtoメソッドの使い方
さまざまな繰り返し処理

uptoメソッド、downtoメソッドの詳しい使い方を解説していますので、ぜひ参考にしてください!

目次

uptoメソッドとは

uptoメソッドは、オブジェクトが持つ数値をuptoメソッドで指定した引数の数値になるまで、順番に処理を実施していくメソッドです。

uptoメソッドの書き方:

オブジェクト.upto(max) do |変数|
    繰り返し処理
end
  • オブジェクトは数値が格納されている必要があります。
  • オブジェクトの数値からuptoメソッドの引数に指定したmax値になるまで処理が繰り返されます。
  • 変数にはオブジェクトの数値からmaxになるまで値が代入されます。
  • 「do」から「end」の部分で繰り返し処理を行います。

uptoメソッドの使い方

それではuptoメソッドの使い方を見ていきましょう。

以下の処理はオブジェクトに2を指定してmax値10になるまで繰り返し処理を行います。

2.upto(10) do |num|
    p num + num
end

実行結果:

4
6
8
10
12
14
16
18
20

このサンプルプログラムでは、オブジェクト2の値が変数numに格納され、uptoメソッドで指定したmax値10になるまで繰り返し処理が実行されます。

uptoメソッドを使用すれば、文字列に番号を順番に振りたい場合などに便利です。

str = "number"

1.upto(10) do |num|
    p str + "_" + num.to_s
end

実行結果:

"number_1"
"number_2"
"number_3"
"number_4"
"number_5"
"number_6"
"number_7"
"number_8"
"number_9"
"number_10"

downtoメソッドとは

uptoメソッドは、オブジェクトが持つ数値をdowntoメソッドの引数で指定した数値になるまで、順番に処理を実施していくメソッドです。

uptoメソッドとの違いとしては、処理ごとに1ずつ数値が減っていきます。

downtoメソッドの書き方:

オブジェクト.upto(min) do |変数|
    繰り返し処理
end
  • オブジェクトは数値が格納されている必要があります。
  • オブジェクトの数値からdowntoメソッドの引数に指定したmin値になるまで処理が繰り返されます。
  • 変数にはオブジェクトの数値からminになるまで値が代入されます。
  • 「do」から「end」の部分で繰り返し処理を行います。

downtoメソッドの使い方

それではdowntoメソッドの使い方を見ていきましょう。

以下の処理はオブジェクトに10を指定してmin値3になるまで繰り返し処理を行います。

10.downto(3) do |num|
    p num + num
end

実行結果:

20
18
16
14
12
10
8
6

このサンプルプログラムでは、オブジェクト10の値が変数numに格納され、downtoメソッドで指定したmin値3になるまで繰り返し処理が実行されます

Rubyの繰り返し処理について

Rubyにはここで紹介したuptoメソッドやdowntoメソッド以外にもさまざまな繰り返し処理があります。

以下の記事ではrubyの繰り返し処理である「for」「times」「while」などの処理をまとめていますので参考にしてください!

まとめ

ここでは、最大値・最小値を指定して繰り返し処理を行うuptoメソッド、downtoメソッドについて解説しました。

  • uptoメソッドとは
  • uptoメソッドの使い方
  • downtoメソッドとは
  • downtoメソッドの使い方
  • さまざまな繰り返し処理

プログラムにおいて、繰り返し処理は最も基本的な処理となりますので、繰り返しについてはそれぞれの特性を理解して役立てていきましょう!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次