繰り返し処理が行える!Rubyでtimesを使う方法【初心者向け】
Rubyでtimesを使う方法について解説しています。timesメソッドを使うと、指定回数だけ繰り返し処理を行うことができます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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("HELLOn"); }
HELLOを5回表示させるプログラムを書いてみました。
先ほど説明した、変数に0から対象のオブジェクトの持つ値-1というのを分かりやすくするために
何回目の繰り返しかを表示させる項目を付け足しましょう。
5.times{|num| print(num,"回目のHELLOn"); }
これで0から持つ値の-1というのがわかっていただけたと思います。
今、オブジェクトに5を設定しました。
なので、値は0,1,2,3,4というふうになっています。
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でリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。 |