こんにちは、すぐるです!
sugulogをお読みいただきありがとうございます!!
このブログは、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準に書いています。
少しでもお役に立てれば幸いです。
今回は、Rubyの基礎文法である
-
繰り返し処理
について簡単に解説します!!
繰り返し処理とは、同じ内容を繰り返し行う処理のことで、ループ処理とも呼ばれたりします。
その為このブログを読むことで、繰り返し処理を行うtimesメソッド、eachメソッドについての違い、使い方まで理解することができます。
是非最後までご愛読ください。
今回は
-
timesメソッド
-
eachメソッド
の順で解説します!
それでは早速、みていきましょう!!
・timesメソッド
数値の値によって、その値の回数分だけ処理を繰り返すメソッド。
では実際に、どのように書くのかみていきましょう!
またtimesメソッドはブロック変数というのが使えます。
ブロック変数とはメソッドの中でのみ使える変数で、メソッドによって入る値が異なります。
timesメソッドの場合は繰り返し処理が1回実行されるごとに、0から1ずつ増加する値が代入されます。
そのため0から始まるので、処理の中ではブロック変数に+1しています。
結果的に上記のコードは、1回目・2回目・3回目と出力します。
(+1しない場合は、0回目・1回目・2回目と出力されます。)
timesメソッドはメソッド内に記載された処理を数値分、繰り返し処理を行うメソッドということですね!!
・eachメソッド
配列に対し要素1つ1つを取り出し、繰り返し処理を行うメソッド。
こちらも実際に、どのように書くのかみていきましょう!
eachメソッドの場合ブロック変数には、繰り返し処理が1回実行されるごとに、配列の添字0番からの要素が順番に代入されます。
そのため上記のコードでは、回数:1・回数:2・回数:3と出力します。
eachメソッドは配列の要素数分、繰り返し処理を行うメソッドということですね!!
復習問題です。
今回は以下のコードを解析してみましょう。
答え
まずはfriendsという空の配列を用意しています。
その次にtimesメソッドを使い、繰り返し処理を5回実行しています。
処理の内容としては、friendという空のハッシュを作る。
入力させた名前をハッシュのnameキーとしてfriend(ハッシュ)に追加する。
入力させた年齢をハッシュのageキーとしてfriend(ハッシュ)に追加する。
その追加されたfriend(ハッシュ)を、friends(配列)に追加する。
次にeachメソッドを使いfriends(配列)に入っているfriend(ハッシュ)を1つずつ取り出し、その回数分の繰り返し処理を実行しています。
処理内容としては、if文を使いfriend(ハッシュ)のageが20以上の場合は、friend(ハッシュ)のnameを取得し、nameさんはお酒を飲めますを出力し、それ以外の場合はnameさんはソフトドリンクしか飲めません!を出力するという内容です。
最終的には、~さんはお酒を飲めます・~さんはソフトドリンクしか飲めません!・~さんはお酒を飲めます・~さんはお酒を飲めます・~さんはソフトドリンクしか飲めません!みたいに年齢によって、条件分岐処理されるというコードでした!!
今までの知識も含めたコードのため少し難しかったと思います。
今までの記事も含めてわからなかったところは、しっかり読み直し復習しましょう!
以上、今回のブログでした。
繰り返し処理を行うtimesメソッド、eachメソッドについての違い、使い方について理解は深まりましたか??
少しコードも複雑になってきましたが、焦らず1歩ずつ進んでいきましょう(≧∀≦)/
最後に!!
今後も、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準にブログを書いていきます。
少しでも気になった方はお試しでもいいので1度、読者登録お願いします!
またTwitterでもプログラミングに関することを中心に情報を発信してます。
宜しければそちらのフォローもお願いします。
最後までご愛読いただきありがとうございました!!