본문 바로가기

개발/Ruby on Rails

Ruby : 기초(3) 반복

반응형

while과 until

루비의 조건문에 if, unless가 있던 것처럼, while에도 반대에 해당하는 until이라는 것이 있습니다.
until은 조건이 거짓일 때 반복되는 반복문입니다.

i = 3
until i < 1
  print i
end
# 3 2 1

for

루비에는 전통적으로 사용되어 오던 for문(초기식; 조건식; 증감식)이 없고, 대신 for-in문이 있습니다.
규칙은 for 변수 in 범위값(Range)입니다.
예를 들어, 단순 반복을 5회 하고 싶다면

for num in 1..5
   # doSomething
end

으로 5회 반복이 가능합니다.
그리고 이러한 반복문을 제어하는 명령어로 breaknext(continue가 아닙니다)를 제공합니다.

loop

단순 반복문(조건에 따른 break가 없다면 무한 반복)을 만들 수 있습니다.

i = 0
loop do
  print "HI!"
  i += 1
  break if i > 4
end
# HI! HI! HI! HI! HI!

times

times 반복 메소드로, 정수형 값에서 불러 쓸 수 있는데요, 이때 해당 정수의 값만큼 반복하는 작업을 수행하게 됩니다.

3.times do
  print "HI!"
end
# HI! HI! HI!

each

each는 여러 값을 가진 객체(배열이나 해시 등)에서 사용할 수 있는 반복 메소드입니다.
for-in과 마찬가지로, 값을 하나씩 꺼내 반복하는 작업을 수행합니다.
여기서 값을 받는 변수는 | | 안에 넣어 사용합니다.

arr = [ 1, 2, 3 ]
arr.each do | i | # arr의 값을 하나씩 꺼내 i에 할당
  print i
end
# 1 2 3

해시처럼 한 객체 안의 데이터가 한 개 이상인 경우엔 여러 변수에 할당할 수 있습니다.

hash = { a: 10, b: 20 }
hash.each { | key, value | # do 대신 괄호를 사용
  puts "K: ${key}  V: ${value}"
}
# K: a  V: 10
# K: b  V: 20

'개발 > Ruby on Rails' 카테고리의 다른 글

Ruby : 기초(6) 클래스  (0) 2020.03.14
Ruby : 기초(5) 메소드  (0) 2020.03.14
Ruby : 기초(4) 해시와 심볼  (0) 2020.03.14
Ruby : 기초(2) 연산  (0) 2020.03.13
Ruby : 기초(1) 변수  (0) 2020.03.13