for (초기식; 조건식; 증감식) {
// 반복 실행할 코드
}
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
초기식: 반복문이 시작될 때 한 번 실행됨 (int i = 0)
조건식: 반복 조건 (i < 5)
증감식: 반복 후 실행되는 식 (i++)
배열이나 컬렉션을 순회할 때 사용
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
배열이나 리스트 등 순차적인 데이터 구조를 다룰 때 유용
인덱스가 필요 없는 경우 적합
조건이 참인 동안 반복 실행
while (조건식) {
// 반복 실행할 코드
}
int i = 0;
while (i < 5) {
System.out.println("i = " + i);
i++;
}
조건식이 처음부터 거짓이면 한 번도 실행되지 않음
주로 반복 횟수를 알 수 없을 때 사용
조건에 관계없이 최소 한 번은 실행
do {
// 반복 실행할 코드
} while (조건식);
int i = 0;
do {
System.out.println("i = " + i);
i++;
} while (i < 5);
조건을 나중에 검사하기 때문에 한 번은 실행됨
사용자 입력 등에서 한 번 이상 실행이 필요한 경우 사용
반복문을 즉시 종료
for (int i = 0; i < 10; i++) {
if (i == 5) break;
System.out.println(i);
}
현재 반복을 건너뛰고 다음 반복으로 이동
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) continue;
System.out.println(i);
}
반복문 안에 또 다른 반복문이 들어갈 수 있음
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.println(i + " x " + j + " = " + (i * j));
}
}
무한 루프를 방지하기 위해 조건식이 반드시 종료 조건을 향해 가야 함
무한 루프가 필요한 경우에는 break를 이용해 종료 조건을 명확히 설정
중첩 반복은 성능에 영향을 주므로 필요 이상 깊게 중첩되지 않도록 주의
반복문 종류 |
특징 |
용도 예시 |
---|---|---|
for |
반복 횟수가 명확할 때 사용 |
배열 인덱스 순회, 카운트 기반 반복 |
foreach |
배열, 리스트 등 컬렉션 순회에 최적화 |
배열 값 출력 |
while |
반복 조건이 가변적이고 사전 검사 필요할 때 |
사용자 입력 대기, 네트워크 대기 등 |
do-while |
무조건 한 번 실행 후 조건 확인 |
메뉴 반복, 재입력 요구 상황 등 |