В C и многих других языках существует ключевое слово continue
, которое при использовании внутри цикла переходит к следующей итерации цикла. Есть ли эквивалент этого ключевого слова continue
в Ruby?
Эквивалент "продолжить" в 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).
Однако то, что он на самом деле делает, - это просто возврат из текущего блока. Таким образом, вы можете использовать его с любым методом, который принимает блок, даже если он не имеет ничего общего с итерацией.
Ответ 5
Ruby имеет два других ключевых элемента управления циклом/итерацией: redo
и retry
.
Узнайте больше о них и о различии между ними в Ruby QuickTips.
Ответ 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