Java for-each문 (향상된 for문)
코딩Java
읽는데 5분 소요
처음 쓰여진 날: 2026-04-02
마지막 수정일: 2026-04-02
조회수: 2
요약
Java for-each문(향상된 for문)의 기본 문법과 동작 원리를 알아봅니다. 일반 for문과의 차이, 2차원 배열에서의 활용 등 정보처리기사 실기에 출제되는 for-each 개념을 정리합니다.
for-each문 핵심 정리
| 개념 | 설명 | 예시 |
|---|---|---|
| for-each문 | 배열의 원소를 처음부터 끝까지 하나씩 꺼내는 반복문 1 | for (int x : arr) |
| 기본 문법 | for (타입 변수 : 배열) — 콜론(:)은 "~에서 꺼낸다"는 뜻 | for (String s : names) |
| 일반 for문과 차이 | 값만 꺼낼 때 사용. 몇 번째 원소인지(인덱스)가 필요하면 일반 for문 사용 | for (int i = 0; i < arr.length; i++) |
for-each문이란? 기초
for-each문은 배열의 원소를 처음부터 끝까지 하나씩 꺼내는 반복문입니다. "향상된 for문(enhanced for)" 이라고도 부릅니다. 여기서 "향상된"은 "더 좋다"는 뜻이 아니라, 배열 순회를 더 간편하게 쓸 수 있도록 추가된 문법이라는 의미입니다.
java
코드 하이라이팅 중...
text
코드 하이라이팅 중...
for (int x : arr) 은 "arr 배열에서 원소를 하나씩 꺼내 x에 담아라" 라는 뜻입니다. 콜론(:)이 "~에서 꺼낸다"는 역할을 합니다.
기본 문법 기초
java
코드 하이라이팅 중...
- 타입 2: 배열 원소의 타입과 같아야 합니다.
int[]배열이면int,String[]배열이면String - 변수명: 꺼낸 원소를 담을 변수 이름. 자유롭게 지을 수 있습니다
- 배열: 순회할 대상 배열
실행 순서
java
코드 하이라이팅 중...
- 배열의 첫 번째 원소
"감자"를name에 담고, 중괄호 안의 코드를 실행 - 배열의 두 번째 원소
"고구마"를name에 담고, 중괄호 안의 코드를 실행 - 배열의 세 번째 원소
"옥수수"를name에 담고, 중괄호 안의 코드를 실행 - 배열의 끝에 도달하면 반복 종료

일반 for문과 비교 기초
같은 동작을 일반 for문으로 작성하면 이렇습니다.
java
코드 하이라이팅 중...
| 구분 | 일반 for문 | for-each문 |
|---|---|---|
| 인덱스 사용 | i로 인덱스 접근 가능 | 인덱스 없음 |
| 값 접근 | arr[i]로 접근 | 변수에 바로 담김 |
| 역순 순회 | 가능 (i--) | 불가능 (항상 처음부터 끝까지) |
| 값 수정 | arr[i] = 값으로 가능 | 배열 원본 수정 불가 |
역순 순회는 일반 for문으로만 가능합니다.
java
코드 하이라이팅 중...
배열 원소 값을 직접 바꾸는 것도 일반 for문만 가능합니다.
java
코드 하이라이팅 중...
for-each문에서는 배열 원본을 수정할 수 없습니다
for-each문의 변수는 배열에서 꺼낸 복사본입니다. 배열의 값을 꺼내서 새 변수에 대입하는 방식이라, 그 변수를 바꿔도 원래 배열에는 영향이 없습니다.
java
코드 하이라이팅 중...

2차원 배열과 for-each문 기초
Java의 2차원 배열은 "배열의 배열"입니다. int[][] matrix는 int[] 타입의 원소들을 담은 배열이며, 각 원소가 또 하나의 1차원 배열(행)입니다. 따라서 for-each문으로 꺼내지는 원소는 1차원 배열(행)입니다.

java
코드 하이라이팅 중...
text
코드 하이라이팅 중...
바깥 for-each에서 int[] row로 받는 이유는, matrix의 각 원소가 int[](1차원 배열)이기 때문입니다. 안쪽 for-each에서 row의 원소를 다시 하나씩 꺼내면 개별 int 값을 얻을 수 있습니다.