In C en vele andere talen is er een continue
trefwoord dat, wanneer het in een lus wordt gebruikt, naar de volgende iteratie van de lus springt. Is er een equivalent van dit continue
zoekwoord in Ruby?
Antwoord 1, autoriteit 100%
Ja, het heet next
.
for i in 0..5
if i < 2
next
end
puts "Value of local variable is #{i}"
end
Dit levert het volgende op:
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
Antwoord 2, autoriteit 12%
next
kijk ook naar redo
waarmee de huidigeiteratie opnieuw wordt uitgevoerd.
Antwoord 3, autoriteit 9%
Het schrijven van Ian Purtonsantwoordop een iets meer idiomatische manier:
(1..5).each do |x|
next if x < 2
puts x
end
Afdrukken:
2
3
4
5
Antwoord 4, autoriteit 4%
Binnen for-loops en iteratormethoden zoals each
en map
zal het next
trefwoord in ruby het effect hebben dat het naar de volgende iteratie springt van de lus (hetzelfde als continue
in C).
Maar wat het eigenlijk doet, is gewoon terugkeren van het huidige blok. Je kunt het dus gebruiken met elke methode waarvoor een blok nodig is – zelfs als het niets met iteratie te maken heeft.
Antwoord 5, autoriteit 3%
Ruby heeft twee andere sleutelwoorden voor loop/iteratiecontrole: redo
en retry
.
Lees meer over hen, en het verschil tussen hen, op Ruby QuickTips.
Antwoord 6
Volgens mij heet het volgende.
Antwoord 7
Gebruik het volgende, het zal die voorwaarde omzeilen en de rest van de code zal werken.
Hieronder heb ik het volledige script gegeven en uitgevoerd
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()
Uitvoer:
Voer het aantal in
10
1
2
3
4
6
7
8
9
10