Equivalent van “doorgaan” in Ruby

In C en vele andere talen is er een continuetrefwoord dat, wanneer het in een lus wordt gebruikt, naar de volgende iteratie van de lus springt. Is er een equivalent van dit continuezoekwoord 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 redowaarmee 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 eachen mapzal het nexttrefwoord in ruby het effect hebben dat het naar de volgende iteratie springt van de lus (hetzelfde als continuein 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: redoen 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

Other episodes