Rubyでよく使う繰り返し処理を書いていきます。
また、転職の際のコーディングテストでもよく出題されるので、一個でも覚えておくと良いかと。。。。
こういうの使いこなせるとカッコええと思うのでまとめておきます。
メソッド系
繰り返す系メソッドまとめます。
each
みんな大好きeachメソッド。なんだかんだで一番使う頻度が多い。
公式:
格納データ.each do |個別データ|
繰り返し処理
end
lists = [a,b,c,d]
lists. each do |list|
puts list
end
#結果
a
b
c
d
格納データは複数形、個別データは単数形の方が読みやすいです。
loop
どのタイミングで使うのか、未だに把握できていないloop。
やろうと思えば、めちゃめちゃサーバーに負荷をかけられますw。
公式:
loop do
繰り返し処理
end
loop do
puts "アイウエオ"
end
#結果
アイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオアイウエオ.........
もちろんこれに関しては、止める方法もあります。
loopメソッド時に使える命令 break
これを打てばloopメソッドを止めることができます。
条件式を指定し、その式を満たした時、ループを止めることができます。
i = 0
loop do
i += 1
puts "アイウエオ"
if i == 5
break
end
end
#結果
アイウエオ
アイウエオ
アイウエオ
アイウエオ
アイウエオ
補足 next
次の処理を飛ばすことができます。
i = 0
lists = [a,b,c,d]
lists.[i]
i += 1
if i == 1
next
end
#結果
a
b
d
上の例では、iが1になったタイミングで次の2を飛ばしています。
よってcが飛ばされ、dが出てきます。
times
繰り返し処理の回数を規定したい時に使います。
公式:
回数.times do
繰り返し処理
end
5.times do
puts "アイウエオ"
end
#結果
アイウエオアイウエオアイウエオアイウエオアイウエオ
構文系
次は構文で繰り返す処理を書きます。
while
条件式が真である限り、処理を繰り返します。
公式:
while 条件式 do
繰り返し処理
end
i = 0
while i<7
puts i
i += 1
end
#結果
0
1
2
3
4
5
6
単純な計算式を作りたい時に利用できます。
until
これはwhileとは逆で、条件式が偽である限り、処理を繰り返します。
公式:
until 条件式 do
繰り返し処理
end
i = 0
until i == 5 do
puts i
i += 1
end
#結果
0
1
2
3
4
for
eachの構文版のような形で、データに格納されているものを一つずつ取り出し、
処理を行います。
公式:
for 個別データ in 格納データ
繰り返し処理
end
lists = [a,b,c,d]
for list in lists
puts "list"
end
#結果
a
b
c
d
処理は結構ありますが、その場その場で使いこなせるようになりたいです。
他にもあったら教えてほしいいです!