En C et dans de nombreux autres langages, il existe un mot clé continue
qui, lorsqu'il est utilisé à l'intérieur d'une boucle, permet de passer à la prochaine itération de la boucle. Existe-t-il un équivalent de ce mot clé continue
dans Ruby?
Oui, ça s'appelle next
.
for i in 0..5
if i < 2
next
end
puts "Value of local variable is #{i}"
end
Cela génère les éléments suivants:
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
regardez aussi redo
qui refait l'itération actuelle.
En écrivant la réponse de Ian Purton d'une manière légèrement plus idiomatique:
(1..5).each do |x|
next if x < 2
puts x
end
Impressions:
2
3
4
5
Les boucles internes et les méthodes d'itérateur telles que each
et map
le mot clé next
dans Ruby aura pour effet de passer à la prochaine itération de la boucle (identique à continue
en C).
Cependant, ce qu'il fait réellement, c'est simplement revenir du bloc actuel. Vous pouvez donc l’utiliser avec n’importe quelle méthode prenant un bloc - même si cela n’a rien à voir avec une itération.
Ruby a deux autres mots clés de contrôle de boucle/itération: redo
et retry
. En savoir plus sur eux, et la différence entre eux, à Ruby QuickTips .
Je pense que cela s'appelle next .
Utilisez next, il contournera cette condition et le reste du code fonctionnera. Ci-dessous, j'ai fourni le script complet et mis en vente
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()
Sortie: Entrez le nombre 10
1 2 3 4 6 7 8 9 10