Verwenden Sie das Schlüsselwort next
. Wenn Sie nicht mit dem nächsten Punkt fortfahren möchten, verwenden Sie break
.
いつ next
innerhalb eines Blocks verwendet wird, wird der Block sofort beendet und die Kontrolle an die Iteratormethode zurückgegeben, die dann eine neue Iteration beginnen kann, indem sie den Block erneut aufruft:
f.each do |line| # Iterate over the lines in file f
next if line[0,1] == "#" # If this line is a comment, go to the next
puts eval(line)
end
Bei Verwendung in einem Block, break
überträgt die Kontrolle aus dem Block, aus dem Iterator, der den Block aufgerufen hat, und zum ersten Ausdruck, der auf den Aufruf des Iterators folgt:
f.each do |line| # Iterate over the lines in file f
break if line == "quit\n" # If this break statement is executed...
puts eval(line)
end
puts "Good bye" # ...then control is transferred here
Und schließlich ist die Verwendung von return
in einem Block:
return
bewirkt immer, dass die umschließende Methode zurückkehrt, unabhängig davon, wie tief sie in Blöcken verschachtelt ist (außer im Fall von Lambdas):
def find(array, target)
array.each_with_index do |element,index|
return index if (element == target) # return from find
end
nil # If we didn't find the element, return nil
end