前回は、配列に因んだ繰り返し処理など紹介しました。
今回は、配列もしかり。範囲オブジェクト等にも使うようなループ処理に着目して、まとめてみます。
#早見表
###繰り返し処理
メソッド / 文法 | 繰り返し回数 |
---|---|
for ~ in ~文 | オブジェクトの要素分 |
while文 | 指定した条件がtrueの間 |
until文 | 指定した条件がfalseの間 |
timesメソッド | 任意に指定 |
loopメソッド | 無限 |
###繰り返し処理に関するテクニック
文法 | 機能 |
---|---|
next | スキップ |
redo | やり直し |
break | 中断 |
#繰り返し回数を変化させるメソッド / 文法たち
##for ~ in ~
要素(範囲)の分だけ、繰り返す
for num in 1..5 do
p num
end
戻り値
1
2
3
4
5
=> 1..5
##while
条件がfalseになるまで、繰り返す
num = 0
while num <= 12 do
p num
num += 3
end
戻り値
0
3
6
9
12
=> nil
##until
条件がtrueになるまで、繰り返す
num = 16
until num <= 12 do
p num
num -= 2
end
戻り値
16
14
=> nil
##times
指定した回数だけ、繰り返す
###単純ループ
num = 0
5.times do
p num
end
戻り値
0
0
0
0
0
=> 5
###値を変化させながらループ
num = 0
5.times do |num|
p num
num += 1
end
戻り値
0
1
2
3
4
=> 5
##loop
breakを使って止めない限り、無限に繰り返す
num = 0
loop do
p num
num += 1
if num >= 3
break
end
end
戻り値
0
1
2
=> nil
#ループ処理中のテクニック
##next
スキップさせることができる
num = 0..5
6.times do |num|
next if num == 1
p num
end
戻り値
0
2
3
4
5
=> 6
##redo
やり直しすることができる
num = 0..5
6.times do |num|
num += 1
p num
redo if num == 1
end
戻り値
1
2
2
3
4
5
6
=> 6
##break
中断することができる
num = 0..5
6.times do |num|
break if num == 3
p num
end
戻り値
0
1
2
=> nil