У C та багатьох інших мовах є continue
ключове слово, яке при використанні всередині циклу переходить до наступної ітерації циклу. Чи є еквівалент цього continue
ключового слова в Ruby?
У C та багатьох інших мовах є 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
.
Детальніше про них та різницю між ними читайте на Ruby 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