Comment faire ce type de boucle for dans Ruby?
for(int i=0; i<array.length; i++) {
}
array.each do |element|
element.do_stuff
end
ou
for element in array do
element.do_stuff
end
Si vous avez besoin d'index, vous pouvez utiliser ceci:
array.each_with_index do |element,index|
element.do_stuff(index)
end
limit = array.length;
for counter in 0..limit
--- make some actions ---
end
l'autre façon de faire est la suivante
3.times do |n|
puts n;
end
qui imprimera 0, 1, 2, pourrait donc être utilisé comme un itérateur de tableau également
Pense que cette variante correspond mieux aux besoins de l'auteur
Je continue à utiliser ce lien en tant que lien principal pour Google "Ruby for loop", donc je voulais ajouter une solution pour les boucles dont l'étape n'était pas simplement "1". Dans ces cas, vous pouvez utiliser la méthode 'step' qui existe sur les objets Numérique et Date. Je pense que ceci est une approximation proche pour une boucle "pour".
start = Date.new(2013,06,30)
stop = Date.new(2011,06,30)
# step back in time over two years, one week at a time
start.step(stop, -7).each do |d|
puts d
end
array.each_index do |i|
...
end
Ce n'est pas très Rubyish, mais c'est la meilleure façon de faire la boucle de la question dans Ruby
L'équivalence serait
for i in (0...array.size)
end
ou
(0...array.size).each do |i|
end
ou
i = 0
while i < array.size do
array[i]
i = i + 1 # where you may freely set i to any value
end
Pour itérer une boucle un nombre de fois déterminé, essayez:
n.times do
#Something to be done n times
end
Quoi? À partir de 2010 et personne n'a mentionné Ruby a une amende pour/in loop (personne ne l'utilise):
ar = [1,2,3,4,5,6]
for item in ar
puts item
end
Si vous n'avez pas besoin d'accéder à votre tableau, (une simple boucle for), vous pouvez utiliser jusqu'à jusqu'à ou chacun:
Jusqu'à:
1.9.3p392 :030 > 2.upto(4) {|i| puts i}
2
3
4
=> 2
Chaque:
1.9.3p392 :031 > (2..4).each {|i| puts i}
2
3
4
=> 2..4
['foo', 'bar', 'baz'].each_with_index {|j, i| puts "#{i} #{j}"}
La syntaxe de la boucle d'énumération de Ruby est différente:
collection.each do |item|
...
end
Cela se lit comme "un appel à la méthode" each "de l'instance d'objet de tableau" collection "qui se bloque avec un argument" argument ". La syntaxe de bloc dans Ruby est "do ... end" ou "{...}" pour les instructions d'une ligne.
L'argument de blocage '| item |' est facultatif, mais s'il est fourni, le premier argument représente automatiquement l'élément énuméré en boucle.