Help us understand the problem. What is going on with this article?

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

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

早見表

繰り返し処理

メソッド / 文法 繰り返し回数
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
prum
エンジニアが日本で一番成長できる環境を作り続ける
https://www.prum.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした