6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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
6
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
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?