sugulogの日記

Rubyのループ処理。timesメソッドやeachメソッドなど繰り返し処理を身に付けよう。

スポンサードリンク

f:id:sugulog:20200914013007p:plain
こんにちは、すぐるです!

sugulogをお読みいただきありがとうございます!!

このブログは、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準に書いています。

少しでもお役に立てれば幸いです。

 

今回は、timesメソッドやeachメソッドなど繰り返し処理を身に付けようということで

  • ループ処理

について簡単に解説します!!

その為このブログを読むことで、ループ処理について理解できるのはもちろん、timesメソッドやeachメソッドなどの繰り返し処理についても理解できます。

是非最後までご愛読ください。

 

今回は、

・timesメソッド

・eachメソッド

の順で解説していきます。

では早速、みていきましょう!!

・timesメソッド

timesメソッドとは指定した数値の値によってその回数分だけ処理を繰り返すメソッドのことです。

f:id:sugulog:20200913231915j:plain上記のようにtimesメソッドはブロック変数というのが使えます。

ブロック変数とはメソッドの中でのみ使える変数で、メソッドによって入る値が異なります。

timesメソッドの場合は繰り返し処理が1回実行されるごとに、0から1ずつ増加する値が代入されます。

0から始まるので上記図では処理の中でブロック変数に+1し、処理回数を表示させています。

結果的に上記の図では数値を3と指定したため、do~endの処理が3回繰り返され1回目、2回目、3回目と順に表示されます。

・eachメソッド

eachメソッドとは主に配列に対し要素1つ1つを取り出す処理を繰り返し行うメソッドのことです。

f:id:sugulog:20200914002616j:plain

eachメソッドの場合ブロック変数には繰り返し処理が1回実行されるごとに配列の添字0からの要素が順番に代入されます。

そのため上記の図では、回数:1・回数:2・回数:3と表示されます。

※表示されている1、2、3は配列の要素の値です。

 

以上、今回のブログでした。

ループ処理について理解でき、timesメソッドやeachメソッドなどの繰り返し処理についても理解できましたか??

少しコードも複雑になってきましたが、焦らず1歩ずつ進んでいきましょう

今回のToDo

以下のコードを読み解いてみましょう(≧∀≦)/

f:id:sugulog:20200914005352p:plain

 

答え

まずはfriendsという空の配列を用意しています。

次にtimesメソッドを使い以下の繰り返し処理を5回実行しています。

friendという空のハッシュを作る。

入力させた名前をnameキーとしてfriend(ハッシュ)に追加する。

入力させた年齢をageキーとしてfriend(ハッシュ)に追加する。

その追加されたfriend(ハッシュ)をfriends(配列)に追加する。

次にeachメソッドを使いfriends(配列)に入っているfriend(ハッシュ)を1つずつ取り出し、その回数分繰り返し処理を実行しています。

処理内容としてはif文を使い、friend(ハッシュ)のageキーの値が20以上の場合はfriend(ハッシュ)のnameを取得し「nameさんはお酒を飲めます」を出力し、それ以外の場合は「nameさんはソフトドリンクしか飲めません!」を出力するという内容です。

最終的には、~さんはお酒を飲めます・~さんはソフトドリンクしか飲めません!・~さんはお酒を飲めます・~さんはお酒を飲めます・~さんはソフトドリンクしか飲めません!みたいに年齢によって条件分岐処理されるというコードでした。

今までのブログの知識も含めたコードのため少し難しかったと思います。

もしわからないところがあったらもう1度、今回のブログも含め確認してみましょう。

sugulog.hatenadiary.jp

sugulog.hatenadiary.jp

sugulog.hatenadiary.jp

 

最後に!!

今後も、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準にブログを書いていきます。

少しでも気になった方はお試しでもいいので1度読者登録お願いします!

最後までご愛読いただきありがとうございました!!