Ruby에서 반복문 사용하기

2020-12-16 hit count image

Ruby에서 for, while 등 반복문을 사용하는 방법에 대해서 알아봅니다.

개요

Ruby에서 반복적인 동작을 수행하기 위해서, for, while 그리고 until 반복문을 사용할 수 있습니다. 이번 블로그에서는 Ruby의 반복문과 반복문을 제어하는 방법에 대해서 알아봅니다.

반복문

For 반복문

For 반복문은 주어진 배열이나 범위를 사용하여, 반복적인 동작을 수행합니다.

for 요소 in 배열이나 범위 do
  반복적인 동작
end

아래와 같이 For문을 사용하여 반복적인 동작을 수행할 수 있습니다.

a = [1, 2, 3]

for i in a do
  puts i
end
# 1
# 2
# 3

위에 예제에서 do는 아래와 같이 생략이 가능합니다.

a = [1, 2, 3]

for i in a
  puts i
end
# 1
# 2
# 3

범위 연산자를 사용하여 아래와 같이 사용할 수도 있습니다.

for i in 1..3 do
  puts i
end
# 1
# 2
# 3

범위 연산자에 관해서는 아래에 블로그를 참고하시기 바랍니다.

While 반복문

While 반복문은 주어진 조건이 성립하는 동안(true), 반복적인 동작을 수행합니다.

while 조건 do
  반복적인 동작
end

아래와 같이 While문을 사용하여 반복적인 동작을 수행할 수 있습니다.

i = 1

while i <= 3 do
  puts i
  i += 1
end
# 1
# 2
# 3

위에 예제에서 do는 아래와 같이 생략이 가능합니다.

i = 1

while i <= 3
  puts i
  i += 1
end
# 1
# 2
# 3

또한 아래와 같이 사용할 수 있습니다.

i = 1

begin
  puts i
  i += 1
end while i <= 3
# 1
# 2
# 3

Util 반복문

Until 반복문은 주어진 조건이 성립할 때까지(false), 반복적인 동작을 수행합니다.

until 조건 do
  반복적인 동작
end

아래와 같이 Until문을 사용하여 반복적인 동작을 수행할 수 있습니다.

i = 1

until i > 3 do
  puts i
  i += 1
end
# 1
# 2
# 3

위에 예제에서 do는 아래와 같이 생략이 가능합니다.

i = 1

until i > 3
  puts i
  i += 1
end
# 1
# 2
# 3

반복문 제어

For, While, Until 반복문을 제어하기 위해서 break, next, redo 그리고 retry 제어문을 사용할 수 있습니다.

Break 제어문

반복문에서 Break 제어문을 사용하여 강제로 반복적인 동작을 중지할 수 있습니다.

a = [1, 2, 3]

for i in a do
  puts i
  if i == 2 then
    break
  end
end
# 1
# 2

while 반복문에서 아래와 같이 사용할 수 있습니다.

i = 1

while i <= 3
  puts i
  i += 1
  if i == 3 then
    break
  end
end
# 1
# 2

Until 반복문에서 아래와 같이 사용할 수 있습니다.

i = 1

until i > 3
  puts i
  i += 1
  if i == 3 then
    break
  end
end
# 1
# 2

Next 제어문

반복문에서 Next 제어문을 사용하여 현재 진행중인 반복적인 동작을 중단하고 다음 동작으로 이동할 수 있습니다.

a = [1, 2, 3]

for i in a do
  if i == 2 then
    next
  end
  puts i
end
# 1
# 3

while 반복문에서 아래와 같이 사용할 수 있습니다.

i = 0

while i < 3
  i += 1
  if i == 2 then
    next
  end
  puts i
end
# 1
# 3

Until 반복문에서 아래와 같이 사용할 수 있습니다.

i = 0

until i > 2
  i += 1
  if i == 2 then
    next
  end
  puts i
end
# 1
# 3

Redo 제어문

반복문에서 Redo 제어문을 사용하여 현재 진행중인 반복적인 동작을 중단하고 같은 조건으로 다시 실행할 수 있습니다.

a = [1, 2, 3]

for i in a do
  if i == 2 then
    i = 10
    redo
  end
  puts i
end
# 1
# 10
# 3

while 반복문에서 아래와 같이 사용할 수 있습니다.

i = 1

while i <= 3
  puts i
  i += 1
  if i == 2 then
    i = 10
    redo
  end
end
# 1
# 10

Yntil 반복문에서 아래와 같이 사용할 수 있습니다.

i = 1

until i > 3
  puts i
  i += 1
  if i == 3 then
    i = 10
    redo
  end
end
# 1
# 10

Retry 제어문

반복문에서 에러가 발생하였을 경우, Retry 제어문을 사용하여 반복문을 처음부터 다시 시도할 수 있습니다.

re = 1
a = [1, 2, 3]

begin
  for i in a do
    if re == 3 then
      break
    end
    if i == 3 then
      re += 1
      raise "This is an exception"
    end
    puts i
  end
rescue
  retry
end
# 1
# 2
# 1
# 2

여기서 사용한 begin...rescue...end는 다른 프로그래밍 언어에서 자주 사용되는 try...catch 구문으로, begin...rescue 안에서 의도하지 않는 에러가 발생하였을 경우, rescue...end 구문이 실행됩니다.

이번 예제에서는 raise를 사용하여 강제적으로 의도하진 에러를 발생시킴으로써, retry 제어문을 사용하도록 했습니다.

완료

Ruby에서 사용할 수 있는 반복문에 대해서 알아보았습니다. 또한 반복문안에서, 반복문을 제어하는 방법에 대해서 알아보았습니다. retry 제어문이 조금 어려웠지만, 의도하지 않은 에러가 발생하였을 때, 반복문을 처음부터 다시 실행시킬 수 있는, 중요한 제어문이므로, 잘 기억하시길 바랍니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

앱 홍보

책 홍보

블로그를 운영하면서 좋은 기회가 생겨 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통
Posts