rubyの繰り返し文についてまとめておきます。
#繰り返しを行うには?
以下のような構文又はメソッドを利用して繰り返し文を書くことが可能です。
今回はそれぞれの使い方をまとめて見ます。
・timesメソッド
・for文
・eachメソッド
##timesメソッド
一定の回数だけ同じ処理をさせたい場合はtimesメソッドを利用します。
qiita.rb
5.times do
p "りんご"
end
実行結果.rb
"りんご"
"りんご"
"りんご"
"りんご"
"りんご"
ブロック内で繰り返しの数値を使いたいときはdoの後に|変数|を加えます。
qiita.rb
5.times do |i|
p "りんご#{i+1}個を食す"
end
実行結果.rb
"りんご1個を食す"
"りんご2個を食す"
"りんご3個を食す"
"りんご4個を食す"
"りんご5個を食す"
##for文
timesメソッドとは異なりfor文はメソッドではないので記述方法が異なります。
1から10まで加算する繰り返し文は以下のようにできます。
qiita.rb
sum =0
for i in 1..10 do
p sum += i
end
実行結果.rb
1
3
6
10
15
21
28
36
45
55
1..10の部分をオブジェクトに変更することも可能です。
qiita.rb
fruits =["りんご","なし","さくらんぼ","みかん"]
for i in fruits do
p i
end
実行結果.rb
"りんご"
"なし"
"さくらんぼ"
"みかん"
fruits配列の要素分処理を繰り返しています。
for文と同じことをeachメソッドでも記載することが可能です。
##each文
each文は以下のように記述します。
each.rb
オブジェクト.each do |変数|
繰り返したい処理
end
for文と同じ処理をeachメソッドで記述すると・・・・
qiita.rb
fruits =["りんご","なし","さくらんぼ","みかん"]
fruits.each do |i|
p i
end
実行結果.rb
"りんご"
"なし"
"さくらんぼ"
"みかん"
同じ結果が得られました!