it-swarm.com.de

Entspricht "Weiter" in Ruby

In C und vielen anderen Sprachen gibt es ein continue - Schlüsselwort, das bei Verwendung innerhalb einer Schleife zur nächsten Iteration der Schleife springt. Gibt es ein Äquivalent zu diesem continue Schlüsselwort in Ruby?

616
Mark Szymanski

Ja, es heißt next.

for i in 0..5
   if i < 2
     next
   end
   puts "Value of local variable is #{i}"
end

Dies gibt Folgendes aus:

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 
889
Ian Purton

next

schauen Sie sich auch redo an, das die aktuelle Iteration wiederholt.

104
Nick Moore

Schreibe Ian Purtons Antwort auf etwas idiomatischere Weise:

(1..5).each do |x|
  next if x < 2
  puts x
end

Drucke:

  2
  3
  4
  5
79
sberkley

Innerhalb von for-Schleifen und Iteratormethoden wie each und map bewirkt das next Schlüsselwort in Ruby, dass zur nächsten Iteration der Schleife gesprungen wird (dasselbe wie continue in C).

Was es jedoch tatsächlich tut, ist, aus dem aktuellen Block zurückzukehren. Sie können es also mit jeder Methode verwenden, die einen Block benötigt - auch wenn es nichts mit Iteration zu tun hat.

40
sepp2k

Ruby verfügt über zwei weitere Schlüsselwörter für die Schleifen-/Iterationssteuerung: redo und retry. Lesen Sie mehr über sie und den Unterschied zwischen ihnen unter Ruby QuickTips .

28
19WAS85

Ich denke, es heißt next .

7
idursun

Bei der nächsten Verwendung wird diese Bedingung umgangen, und der Rest des Codes funktioniert. Unten habe ich das vollständige Skript bereitgestellt und ausgegeben

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()

Ausgabe: Geben Sie die Nummer 10 ein

1 2 3 4 6 7 8 9 10

1
Rakesh Kumar