- 리스트에 있는 목록을 제거하려고 할 때 역방향 for루프를 사용할 수 있다
정방향으로 for루프를 실행하는 경우(반례)
- 인덱스 0 부터 시작하기 때문에 i 값도 0부터 시작한다
- 인덱스 1에 있는 테디를 죽이면 기존 오른쪽에 남아있는 요소들은 왼쪽으로 한 칸 씩 이동한다
- 기존 2에 있던 죽어야 할 테디가 1로 이동, 기존 3에 있던 살아있는 테디가 2로 이동
- i 값은 순차적으로 1씩 증가하므로 1에 있는 요소(기존 2에 있던 죽은 테디)의 처리를 할 수 없다
역방향으로 for루프를 실행하는 경우
- 인덱스 3부터 시작하기 때문에 i 값도 리스트의 크기값 3부터 시작한다
- 3에 있는 생존테디를 넘긴 후 2에 있는 죽은테디를 삭제한다
- 2에 있는 테디를 삭제하면 오른쪽에 있던 기존 3의 테디가 왼쪽으로 한 칸 이동하여 2에 위치하게 된다
- 순차적으로 남은 테디들의 처리를 한다
역방향으로 하면 모든 테디의 처리를 할 수 있다.(4번 처리)
그에 반해 정방향은 처리 과정을 건너뛰는 테디가 있었다. (3번 처리)
'코딩 공부 > Unity C#' 카테고리의 다른 글
리스트를 사용하여 테디가 물건을 모을 수 있도록 하기 (0) | 2024.07.07 |
---|---|
foreach 루프 (0) | 2024.07.05 |
DLL(Dynamic Link Library) (0) | 2024.07.05 |
리스트(List) (0) | 2024.07.04 |
배열(Array) (0) | 2024.07.04 |