繰り返し処理が行える!Rubyでtimesを使う方法【初心者向け】

Rubyでtimesを使う方法について解説しています。timesメソッドを使うと、指定回数だけ繰り返し処理を行うことができます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

timesメソッドを使うと、指定回数だけ繰り返し処理を行うことができます。

では基本構造を見てみましょう。

そもそもRubyがよく分からないという方は、Rubyとは何なのか解説した記事をご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回はRubyの繰り返し処理のひとつ、timesメソッドについて勉強しよう。

大石ゆかり

田島メンター!!timesはどういった繰り返しを行うんですか〜?

田島悠介

timesは指定した回数繰り返し処理を行うものなんだ。最初に繰り返す回数を設定して、つぎに行う処理を入力するよ。

大石ゆかり

なるほど、シンプルで使いやすそうですね。よろしくお願いします!

 

timesの書き方

オブジェクト.times{|変数|
  //繰り返したい処理
}

または

オブジェクト.time do |変数|
  //繰り返したい処理
end

*|変数|の部分は省略可

timesメソッドは、変数に0から対象のオブジェクトが持つ数値から1引いた数を順番に代入しながら、繰り返し処理を行います。

1回繰り返すごとに1ずつ数値が増加していきます。
では具体的にプログラムと実行結果を見ていきましょう。

 

田島悠介

オブジェクトの部分に処理を行う回数を入力するんだ。

大石ゆかり

forでも同じようなことができますが、こっちの方が分かりやすい気がしますね。ちなみに変数の中には何が入ってるんですか〜?

田島悠介

それでは実際に書いて、どうなっているのか見てみようか。今回は指定した回数だけ文字列を出力するというのをやってみよう。

 

実際に書いてみよう

5.times{|num|
  print("HELLO\n");
}

9109c8b1bc9cfaef199fbeb6fba857d5

HELLOを5回表示させるプログラムを書いてみました。
先ほど説明した、変数に0から対象のオブジェクトの持つ値-1というのを分かりやすくするために
何回目の繰り返しかを表示させる項目を付け足しましょう。

5.times{|num|
  print(num,"回目のHELLO\n");
}

a6143d3dc070364c48431ecefbe6415f

これで0から持つ値の-1というのがわかっていただけたと思います。

今、オブジェクトに5を設定しました。

なので、値は0,1,2,3,4というふうになっています。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

uptoメソッドとdowntoメソッドの紹介

timesメソッドと同様にIntegerクラスで用意されているuptoメソッドとdowntoメソッドも便利です。

 

uptoメソッド

文法

オブジェクト.upto(max){|変数|
  処理
}

 

コード例

2.upto(4){|num|
 print(num,",")
}

 

解説

ここでは、オブジェクトとmax部分は数値と考えてください。

uptoメソッドを利用することでオブジェクト(コード例の2)に、max(コード例の6)になるまで、数字を1づつ追加しながら、変数(コード例のnum)を表示処理します。

ここでは、次のように実行結果が表示されます。

2,3,4,

 

downtoメソッド

文法

オブジェクト.downto(min){|変数|
  処理
}

 

コード例

4.upto(2){|num|
 print(num,",")
}

 

解説

ここでは、オブジェクトとmin部分は数値と考えてください。

downtoメソッドを利用することでオブジェクト(コード例の4)に、min(コード例の2)になるまで、数字を1づつ減らしながら、変数(コード例のnum)を表示処理します。

ここでは、次のように実行結果が表示されます。

4,3,2,

 

 

このように単純に回数繰り返し処理をするにはtimesメソッドを使うととても便利です。

 

田島悠介

変数の中身も同時に出力してみた場合の例だよ。

大石ゆかり

なるほど、こういう感じになってたんですね。

田島悠介

指定回数の繰り返しを行うときは、timesを使うととても簡単に設定できるので覚えておこう。

大石ゆかり

確かに見た感じも分かりやすくて便利そうですね。ありがとうございました!

 

[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。