In C und vielen anderen Sprachen gibt es ein continueSchlüsselwort, das bei Verwendung innerhalb einer Schleife zur nächsten Iteration der Schleife springt. Gibt es ein Äquivalent zu diesem continueSchlüsselwort in Ruby?
In C und vielen anderen Sprachen gibt es ein continueSchlüsselwort, das bei Verwendung innerhalb einer Schleife zur nächsten Iteration der Schleife springt. Gibt es ein Äquivalent zu diesem continueSchlüsselwort in Ruby?
Antworten:
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
next) über C ( continue)
next
Schauen Sie sich auch an, redowelche die aktuelle Iteration wiederholt .
redoBefehl (oder seiner Essenz jedenfalls). Suchen Sie für Rubys Interpretation auf dieser Seite nach "Wiederherstellen" .
Schreiben Sie die Antwort von Ian Purton etwas idiomatischer:
(1..5).each do |x|
next if x < 2
puts x
end
Drucke:
2
3
4
5
Innerhalb von for-Schleifen und Iterator-Methoden wie eachund mapdas nextSchlüsselwort in Ruby springen Sie zur nächsten Iteration der Schleife (wie continuein C).
Was es jedoch tatsächlich tut, ist nur, vom 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.
Ruby hat zwei weitere Schlüsselwörter für die Schleifen- / Iterationssteuerung: redound retry.
Lesen Sie mehr über sie und den Unterschied zwischen ihnen in Ruby QuickTips .
Bei Verwendung als Nächstes 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