자바에는 대표적으로 다음과 같은 4가지 반복문이 있습니다.
for 문
while 문
do-while 문
향상된 for-each 문 (배열 및 컬렉션 순회용)
조건을 이용해 반복 횟수가 명확할 때 주로 사용됩니다.
for (초기식; 조건식; 증감식) {
// 반복 실행할 코드
}
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
이 코드는 i가 0부터 4까지 총 5회 반복됩니다.
조건이 true인 동안 반복합니다. 반복 횟수가 명확하지 않을 때 자주 사용됩니다.
while (조건식) {
// 조건이 true일 때 반복
}
int i = 0;
while (i < 5) {
System.out.println("i = " + i);
i++;
}
while문과 유사하지만, 무조건 한 번은 실행되고 나서 조건을 검사합니다.
do {
// 조건에 관계없이 최소 한 번 실행
} while (조건식);
int i = 0;
do {
System.out.println("i = " + i);
i++;
} while (i < 5);
배열이나 List, Set 등의 컬렉션을 쉽게 반복할 수 있게 해줍니다.
for (데이터타입 변수명 : 배열 또는 컬렉션) {
// 반복할 코드
}
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println("num = " + num);
}
반복문 내부에서 흐름을 제어할 수 있는 키워드입니다.
반복문을 즉시 종료합니다.
for (int i = 0; i < 10; i++) {
if (i == 5) break;
System.out.println(i);
}
// 0 ~ 4까지만 출력
반복문의 이번 반복을 건너뛰고 다음 반복으로 이동합니다.
for (int i = 0; i < 5; i++) {
if (i == 2) continue;
System.out.println(i);
}
// 0, 1, 3, 4 출력 (2는 건너뜀)
반복문 안에 반복문이 있는 구조로, 2차원 배열 처리나 다단계 반복 작업에 사용됩니다.
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 2; j++) {
System.out.println("i=" + i + ", j=" + j);
}
}
조건 없이 반복문이 끝없이 실행되는 상태입니다. break로 빠져나오지 않으면 종료되지 않습니다.
while (true) {
System.out.println("무한 반복 중");
break; // 없으면 종료 안 됨
}
반복문 종류 |
반복 횟수 명확함 |
최소 1회 실행 |
주 용도 |
---|---|---|---|
for |
명확함 |
아니오 |
카운터 기반 반복 |
while |
불명확함 |
아니오 |
조건 기반 반복 |
do-while |
불명확함 |
예 |
조건 검사 전에 1회 실행이 필요한 경우 |
for-each |
컬렉션/배열 |
컬렉션 기반 |
배열, 리스트 등 모든 요소 순회 |