Эквивалент "продолжить" в Ruby

В C и многих других языках существует ключевое слово continue, которое при использовании внутри цикла переходит к следующей итерации цикла. Есть ли эквивалент этого ключевого слова continue в Ruby?

Ответ 1

Да, он называется next.

for i in 0..5
   if i < 2
     next
   end
   puts "Value of local variable is #{i}"
end

Выводит следующее:

Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
 => 0..5 

Ответ 2

next

также посмотрите redo, который повторяет текущую итерацию.

Ответ 3

Написание ответа Яна Пёртона несколько более идиоматическим способом:

(1..5).each do |x|
  next if x < 2
  puts x
end

Печать

  2
  3
  4
  5

Ответ 4

Внутри методов for-loops и iterator, таких как each и map ключевое слово next в ruby, будет иметь эффект перехода к следующей итерации цикла (так же, как continue в C).

Однако то, что он на самом деле делает, - это просто возврат из текущего блока. Таким образом, вы можете использовать его с любым методом, который принимает блок, даже если он не имеет ничего общего с итерацией.

Ответ 6

Я думаю, что он называется далее.

Ответ 7

Используйте следующее, оно обойдет это условие, и остальная часть кода будет работать. Ниже я предоставил полный скрипт и поставил

class TestBreak
  puts " Enter the nmber"
  no= gets.to_i
  for i in 1..no
    if(i==5)
      next
    else 
      puts i
    end
  end
end

obj=TestBreak.new()

Выход:  Введите номер 10

1 2 3 4 6 7 8 9 10