LoginSignup
5
4

More than 3 years have passed since last update.

【ruby】今夜、ループ処理まとめてみました【times, break...】

Last updated at Posted at 2020-08-28

前回は、配列に因んだ繰り返し処理など紹介しました。
今回は、配列もしかり。範囲オブジェクト等にも使うようなループ処理に着目して、まとめてみます。

早見表

繰り返し処理

メソッド / 文法 繰り返し回数
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
5
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4