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?
Ruby hat sich viel von Perl geliehen, einschließlich Perls redoBefehl (oder seiner Essenz jedenfalls). Suchen Sie für Rubys Interpretation auf dieser Seite nach "Wiederherstellen" .
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.
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
classTestBreak
puts " Enter the nmber"
no= gets.to_ifor i in1..noif(i==5)nextelse
puts iendendend
obj=TestBreak.new()
Antworten:
Ja, es heißt
next
.Dies gibt Folgendes aus:
quelle
next
) über C (continue
)next
Schauen Sie sich auch an,
redo
welche die aktuelle Iteration wiederholt .quelle
redo
Befehl (oder seiner Essenz jedenfalls). Suchen Sie für Rubys Interpretation auf dieser Seite nach "Wiederherstellen" .Schreiben Sie die Antwort von Ian Purton etwas idiomatischer:
Drucke:
quelle
Innerhalb von for-Schleifen und Iterator-Methoden wie
each
undmap
dasnext
Schlüsselwort in Ruby springen Sie zur nächsten Iteration der Schleife (wiecontinue
in 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.
quelle
Ruby hat zwei weitere Schlüsselwörter für die Schleifen- / Iterationssteuerung:
redo
undretry
. Lesen Sie mehr über sie und den Unterschied zwischen ihnen in Ruby QuickTips .quelle
Ich denke, es heißt als nächstes .
quelle
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
Ausgabe: Geben Sie die Nummer 10 ein
1 2 3 4 6 7 8 9 10
quelle