Je viens de poser une question sur le retour et il semble faire la même chose que pause. Comment utilisez-vous return et comment utilisez-vous break, par exemple dans le code que vous écrivez pour résoudre les problèmes pouvant utiliser ces constructions.
Je ne peux pas vraiment poster d'exemples parce que je ne sais pas comment les utiliser, ils n'auraient donc aucun sens.
Retourne les sorties de la fonction entière.
Break sort de la boucle la plus interne.
Ainsi, dans une fonction comme celle-ci:
def testing(target, method)
(0..100).each do |x|
(0..100).each do |y|
puts x*y
if x*y == target
break if method == "break"
return if method == "return"
end
end
end
end
Pour voir la différence, essayez:
testing(50, "break")
testing(50, "return")
break est appelé depuis une boucle. Cela vous mettra juste après la boucle la plus profonde dans laquelle vous vous trouvez.
return est appelé depuis les méthodes. Il retournera la valeur à laquelle vous le dites et vous placera juste après l'endroit où il a été appelé.
Je voulais modifier la réponse approuvée pour simplifier l'exemple, mais ma modification a été rejetée avec la suggestion de créer une nouvelle réponse. Voici donc ma version simplifiée:
def testing(target, method)
(1..3).each do |x|
(1..3).each do |y|
print x*y
if x*y == target
break if method == "break"
return if method == "return"
end
end
end
end
nous pouvons voir la différence en essayant:
testing(3, "break")
testing(3, "return")
Résultats de la première (instruction break
sortant de la boucle la plus à l'intérieur uniquement lorsque 3
est atteint):
1232463
Résultats de la dernière (instruction return
sortant de la fonction entière):
123
Un autre exemple pourrait être si vous avez deux boucles dans une seule méthode et si vous voulez sortir de la première boucle et continuer jusqu'à la deuxième boucle, utilisez break dans la première boucle ou inversement:
def testing(method)
x=1
10.times do
if(x == 2)
break if method == "break"
end
x+=1
end
10.times do
if(x == 5)
return if method == "return"
end
x+=1
end
end