В Си и многих других языках есть continue
ключевое слово, которое при использовании внутри цикла переходит на следующую итерацию цикла. Есть ли эквивалент этого continue
ключевого слова в Ruby?
В Си и многих других языках есть continue
ключевое слово, которое при использовании внутри цикла переходит на следующую итерацию цикла. Есть ли эквивалент этого continue
ключевого слова в Ruby?
Ответы:
Да, это называется 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
next
) выше C ( continue
)
next
также посмотрите, redo
что повторяет текущую итерацию.
redo
команду Perl (или ее сущность, в любом случае). Для интерпретации Руби, найдите «повторить» на этой странице .
Пишу ответ Яна Пертона чуть более идиотски:
(1..5).each do |x|
next if x < 2
puts x
end
Печать:
2
3
4
5
Внутри для петель и итератора методов , как each
и map
в next
ключевом слове в рубине будет иметь эффект перехода к следующей итерации цикла (такой же , как continue
в С).
Однако на самом деле он просто возвращает из текущего блока. Таким образом, вы можете использовать его с любым методом, который принимает блок - даже если он не имеет ничего общего с итерацией.
В Ruby есть еще два ключевых слова управления циклами и итерациями: redo
и retry
.
Узнайте больше о них и разнице между ними в рубриках QuickTips .
Используйте следующее, оно обойдет это условие, и остальная часть кода будет работать. Ниже я предоставил полный сценарий и положил
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