더북(TheBook)

Note ≡ 이터레이터를 사용한 피보나치 수열 출력

다음 코드는 이터레이터를 사용하여 피보나치 수열을 7개 정도 출력합니다.

 

> static IEnumerable<int> GetFibonacci()
. {
.     int current = 1;
.     int next = 1;
.     yield return current;
.     while (true)
.     {
.         int temp = current + next;
.         current = next;
.         next = temp;
.         yield return current;
.     }
. }
> int count = 7;
> int i = 0;
> foreach (var f in GetFibonacci())
. {
.     Console.WriteLine(f);
.     if (++i > count)
.     {
.         break;
.     }
. }
1
1
2
3
5
8
13
21

인덱서와 반복기는 클래스의 인스턴스인 개체에 컬렉션 개념을 도입했습니다. 개체에 배열처럼 인덱스로 값을 저장하고, 개체 값을 foreach 문으로 하나씩 가져다 사용할 수 있어 편리합니다.

 


주석

 

1 C#만 보면 반복기가 맞지만, 현업에서는 이터레이터 단어 그대로 쓰는 경향이 있어 용어에 익숙해질 수 있게 혼용해서 사용하겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.