Statements "break", "next", "redo"

В Ruby операторы break, next и redo используются для изменения хода цикла:

break полностью выходит из цикла. Обычно break используется, когда определенное условие делает продолжение цикла ненужным.

for i in 1..5
if i == 3
break
end

puts i
end

# 1
# 2

next пропускает текущую итерацию и переходит к следующей. Оператор next полезен, когда необходимо пропустить определенные значения. Например, пропуск недопустимого ввода, нечетных чисел или определенных символов в строке.

for i in 1..5
if i == 3
next
end

puts i
end

# 1
# 2
# 4
# 5

redo используется для повтора текущей итерации цикла.

restart = false

5.times do |i|
if i == 2
unless restart
puts "Re-doing when i = 2"
restart = true

redo
end
end

puts i
end

# 0
# 1
# Re-doing when i = 2
# 2
# 3
# 4