1. 횟수가 명확할 땐 for문
반복해야 할 횟수가 정확히 정해져 있을 때 가장 깔끔하게 쓸 수 있는 반복문이다. 구조: for (초기식; 조건식; 증감식)
// [for문 예제]
// i는 1부터 시작; i가 5 이하일 때까지; 1바퀴 돌 때마다 i를 1씩 증가
for (int i = 1; i <= 5; i++) {
System.out.println("현재 바퀴 수: " + i);
}
2. 조건이 중요할 땐 while & do-while
몇 번 반복할지 횟수는 모르겠지만, 특정 조건이 유지되는 동안 계속 반복해야 할 때 사용한다.
while: 시작하기 전에 조건을 먼저 검사. 조건이 거짓이면 한 번도 실행 안 될 수 있음.do-while: 일단 코드를 무조건 1번은 실행한 뒤에, 반복할지 조건을 검사.
// [while문 예제]
int hp = 3;
while (hp > 0) {
System.out.println("게임 플레이 중... (현재 체력: " + hp + ")");
hp--; // 체력 감소
}
// [do-while문 예제]
int password = 0;
do {
// 조건과 상관없이 무조건 1번은 실행되어 비밀번호 입력 창을 띄움
System.out.println("비밀번호를 입력하세요.");
password = 1234;
} while (password != 1234);
3. 이중 반복문 (Nested Loop)
반복문 안에 또 다른 반복문이 들어가는 형태다. 구구단 출력이나 2차원 배열 탐색 등 행렬(Matrix) 구조를 다룰 때 필수적이다. 바깥쪽 반복문(i)이 1번 돌 때, 안쪽 반복문(j)은 할당된 횟수를 전부 다 돌아야 바깥쪽이 다음으로 넘어간다.
// [이중 반복문 - 구구단 예제]
for (int i = 2; i <= 9; i++) {
System.out.println("--- " + i + "단 ---");
for (int j = 1; j <= 9; j++) {
System.out.println(i + " x " + j + " = " + (i * j));
}
}
4. 반복문 흐름 제어: break와 continue
반복이 진행되는 와중에 강제로 흐름을 끊거나 건너뛸 수 있는 마법의 키워드다.
break와 continue는 모두 생략할 수 있다.
break: 만나는 즉시 반복문을 완전히 탈출한다. (종료)continue: 만나는 즉시 아래 코드를 무시하고, 다음 바퀴(증감식/조건식)로 건너뛴다. (스킵)
// [break와 continue 예제]
for (int i = 1; i <= 10; i++) {
if (i == 3) {
continue; // 3일 때는 출력하지 않고 바로 다음 바퀴(4)로 스킵
}
if (i == 6) {
break; // 6을 만나는 순간 반복문 자체를 파괴하고 나감
}
System.out.println(i);
}
// 최종 출력 결과: 1, 2, 4, 5