루비 프로그래밍 언어의

다양한 반복문

 Biweekly Lecture

2015-10-20

Ruby on Rails Korea

- ROR Lab. Season 4 -

Loops in Ruby

루비 어디까지 루프를 돌아봤니?

미묘하게 다른 루프 유형을 살펴봅니다.

gratisography.com

유  형 비                    고
loop 무한 반복문, break 필요
each 배열(Array)의 요소 하나씩 처리
for 유사 each, 반복문의 변수는 반복실행후 사용가능
변수 스코프가 블록을 벗어나서 자주 사용하지 않음
while 조건부 무한반복문(조건이 참인 동안), do키워드생략가능
until 조건부 무한반복문(조건이 거짓인 동안), do키워드생략가능
times 루비에서 자주 쓰는 유형, 반복 횟수를 미리 정함
step 반복할 블록 안에 변수를 넘겨줄 때 n+씩 증가함.
upto 반복할 블록 안에 변수를 넘겨줄 때 시작과 끝 범위를 정함
downto upto와 같으나 시작과 끝의 순서가 다름.
break  무한 루프를 마치고 빠져나감
next 무한 루프를 빠져나가지 않고 아래 코드는 생략하고 다음 차례를 실행
redo 현재 코드 블록을 한 번 더 실행하여 무한 반복에 빠지기 쉬움
loop do
  puts "I'm in loop"
end
#=> I'm in loop
#=> I'm in loop
#=> ...
i = 0
loop do
  break if i == 3
  puts "I'm in loop"
  i += 1
end
#=> I'm in loop
#=> I'm in loop
#=> I'm in loop
%w(burger pizza steak).each do |food|
  puts "I'm eating #{food}"
end
#=> I'm eating burger
#=> I'm eating pizza
#=> I'm eating steak
for food in %w(burger pizza steak)
  puts "I'm eating #{food}"
end

for i in [1, 2, 3]
  # some code
end
puts i
#=> 3

[1, 2, 3].each do |i|
  # some code
end
i
# undefined local variable or method `i' 
# for main:Object (NameError)
i = 1
while i < 4 do
  puts "#{i} is less than 4"
  i += 1
end
#=> 1 is less than 4
#=> 2 is less than 4
#=> 3 is less than 4
i = 1
until i == 4 do
  puts "I'm #{i}, not 4"
  i += 1
end
#=> I'm 1, not 4
#=> I'm 2, not 4
#=> I'm 3, not 4

i = 1
until i == 4
  puts "I'm #{i}, not 4"
  i += 1
end
3.times do
  puts "I'm working"
end
#=> I'm working
#=> I'm working
#=> I'm working
(0..4).step(2) do |i|
  puts i
end
#=> 0
#=> 2
#=> 4
3.upto 5 do |i|
  puts i
end
#=> 3
#=> 4
#=> 5
3.downto 1 do |i|
  puts i
end
#=> 3
#=> 2
#=> 1
(0..4).each do |i|
  break if i == 3
  puts i
end
#=> 0
#=> 1
#=> 2
(0..3).each do |i|
  next if i == 2
  puts i
end
#=> 0
#=> 1
#=> 3
(1..3).each do |i|
  i += 1
  puts i
  redo if i == 2
end
#=> 2
#=> 3
#=> 3
#=> 4
(1..3).each do |i|
  puts i
  redo if i == 2
end
#=> 1
#=> 2
#=> 2
#=> ...

https://prograils.com/posts/loops-in-ruby-all-possible-approaches

루비 반복문

By wagurano

루비 반복문

루비 프로그래밍 언어의 다양한 반복문을 살펴봅니다.

  • 1,805