programing

루비의 for 루프 구문

nasanasas 2020. 10. 6. 08:16
반응형

루비의 for 루프 구문


Ruby에서 이러한 유형의 for 루프를 어떻게 수행합니까?

for(int i=0; i<array.length; i++) {

}

array.each do |element|
  element.do_stuff
end

또는

for element in array do
  element.do_stuff
end

색인이 필요한 경우 다음을 사용할 수 있습니다.

array.each_with_index do |element,index|
  element.do_stuff(index)
end

limit = array.length;
for counter in 0..limit
 --- make some actions ---
end

다른 방법은 다음과 같습니다.

3.times do |n|
  puts n;
end

0, 1, 2를 인쇄하므로 배열 반복자처럼 사용할 수도 있습니다.

저자의 요구에 더 적합한 변형을 생각하십시오.


나는 이것을 구글 "루 비용 루비"에 대한 상위 링크로 계속 치고있다. 그래서 단계가 단순히 '1'이 아닌 루프에 대한 솔루션을 추가하고 싶었다. 이러한 경우 Numerics 및 Date 개체에있는 '단계'메서드를 사용할 수 있습니다. 나는 이것이 'for'루프에 대한 근사치라고 생각합니다.

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

동등성은

for i in (0...array.size)
end

또는

(0...array.size).each do |i|
end

또는

i = 0
while i < array.size do
   array[i]
   i = i + 1 # where you may freely set i to any value
end

array.each_index do |i|
  ...
end

Rubyish는 아니지만 Ruby의 질문에서 for 루프를 수행하는 가장 좋은 방법입니다.


고정 된 횟수만큼 루프를 반복하려면 다음을 시도하십시오.

n.times do
  #Something to be done n times
end

뭐? 2010 년부터 루비는 / in 루프에 대해 괜찮다고 언급하지 않았습니다 (아무도 사용하지 않습니다).

ar = [1,2,3,4,5,6]
for item in ar
  puts item
end

If you don't need to access your array, (just a simple for loop) you can use upto or each :

Upto:

1.9.3p392 :030 > 2.upto(4) {|i| puts i}
2
3
4
 => 2 

Each:

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}"}

Ruby's enumeration loop syntax is different:

collection.each do |item|
...
end

This reads as "a call to the 'each' method of the array object instance 'collection' that takes block with 'blockargument' as argument". The block syntax in Ruby is 'do ... end' or '{ ... }' for single line statements.

The block argument '|item|' is optional but if provided, the first argument automatically represents the looped enumerated item.

참고URL : https://stackoverflow.com/questions/2032875/syntax-for-a-for-loop-in-ruby

반응형