| English | 의미 |
|---|---|
| traversal/træˈvɜːsl/ | 반복 Traverse |
| enhanced for loop/enˈhænst fɔː luːp/ | 강화 for 루프 |
모든 요소 방문하기
- traversal(순회)는 배열의 모든 요소를 방문하는 것으로, 보통 순서대로 이루어집니다.
- 표준 인덱스 루프:
for (int i = 0; i < a.length; i++) { ... a[i] ... } i은0에서length - 1까지 이동하므로,a[i]이 각 요소를 한 번씩 도달합니다.- traversal은 모든 배열 알고리즘의 기반입니다.
for-each 루프
- enhanced for loop(for-each)은 인덱스 없이 각 값을 방문합니다:
for (int x : a) { ... x ... }—x이 각 요소의 값을 차례로 가져옵니다.- 위치가 아닌 values만 필요할 때 더 깔끔합니다.
- 하지만 배열을 변경하거나 인덱스를 사용할 수 없습니다.
인덱스 vs for-each
- 위치
i가 필요하거나 요소를 modify해야 할 때는 indexed 루프를 사용하세요. - 단순히 각 값을 read하기만 하면 for-each 루프를 사용하세요.
a[i] = 0;는 인덱스 루프가 필요합니다; 값의 합계는 for-each을 사용할 수 있습니다.- 둘 다 모든 요소를 방문합니다. 작업에 맞는 것을 선택하세요.
경계 재확인
- 인덱스 루프의 조건
i < a.length이i이 유효하게 유지되게 합니다. i <= a.length가 하나 초과되면 ArrayIndexOutOfBoundsException이 발생합니다.- for-each 루프는 범위를 벗어날 수 없으며, 범위 처리를 자동으로 해줍니다.
- 직접 인덱스를 작성할 때는 경계 관리의 책임이 있습니다.
for-each 루프는 값을 읽을 수 있지만 배열에 다시 할당할 수는 없습니다. for (int x : a) { x = 0; }은 오직 로컬 복사본 x만 변경하고, a에는 영향을 주지 않습니다. — 배열의 모든 요소를 0으로 초기화하려면 인덱스 기반 루프 a[i] = 0;가 필요합니다. for-each는 읽기에 사용하고, 인덱스 기반 루프는 수정이 필요하거나 특정 위치를 알아야 할 때 사용하세요 i.
배열의 합계를 구하는 두 가지 방법:
- 인덱스:
for (int i = 0; i < a.length; i++) { sum += a[i]; } - for-each:
for (int x : a) { sum += x; } - 둘 다 동일한 총합을 제공합니다. 인덱스가 필요 없을 때는 for-each이 더 깔끔합니다.
traversal은 모든 요소를 방문합니다. 인덱스 루프(for (int i = 0; i < a.length; i++))는 위치 i를 제공하며 a[i]를 modify할 수 있습니다. for-each 루프(for (int x : a))는 각 값을 깔끔하게 read하지만 배열을 변경하거나 인덱스를 사용할 수 없습니다. 인덱스가 필요한지, 변형이 필요한지에 따라 선택하세요.
Traversing an array to sum it
i visits each index; sum accumulates a[i] (here a = {10,20,30}).
The correct condition to traverse an array a with an index is...
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
Valid indices are 0..length-1, so i < a.length.
Which loop should you use if you need to MODIFY the array elements?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
for-each can't assign back; use a[i] = ... with the indexed loop.
In for (int x : a) { x = 0; }, the array a is set to all zeros.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
x is a local copy; the array is unchanged.
The for-each loop for (int x : a) is best when you only need to...
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
for-each cleanly reads values without an index.
Visiting every element of an array is called a ___ (one word).
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
A traversal visits each element.