선생님 안녕하세요!
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5 };
List<int> c1 = new List<int>(arr);
// for(초기식; 조건식; 증감식)
// MoveNext는 boolean을 반환한다.
for (IEnumerator<int> p = c1.GetEnumerator(); p.MoveNext();)
{
int n = p.Current;
Console.WriteLine(n);
}
}
디버그의 한 단계씩 코드실행을 통해 어떻게 돌아가는지는 확인했습니다.
for문에 증감식이 없는 것도 이해가 되고
조건식에 boolean을 반환하는 것이 있기 때문에 문제가 없다는 것도 이해가 됩니다.
그런데 초기식에 있는 것은 이해가 되지 않습니다....
c1.GetEnumerator()는 열거자(enumerator)를 반환하는 것으로 알고 있습니다.
그러면 for문 초기식으로 {1, 2, 3, 4, 5}가 통쨰로 넘어오는데
이때는 커서가 아무것도 가리키지 않기 떄문에 MoveNext와 Current로 하나씩 찝어주는 역할을 하는 것인가요?
혹시 제가 추론한 것이 맞다면 for문의 초기값으로 {1, 2, 3, 4, 5}처럼 여러 값이 올 수 있나요? (
보통 예제에는 int i =0 처럼 하나의 값만 오는 것으로 알고 있습니다...)
[최초 등록일: ]
[최종 수정일: 1/14/2021]