
이미지 출처: Pexels · Pexels License (https://www.pexels.com/photo/19823767/)
같은 문장을 100번 출력해야 한다면, println을 100줄 쓸까요? 그럴 필요 없습니다. 똑같은 일을 여러 번 시키는 것이 오늘의 주제, 반복문입니다.
while — 조건이 참인 동안 계속
while은 괄호 안 조건이 참인 동안 블록을 반복합니다.
int i = 0;
while (i < 3) {
System.out.println("안녕하세요");
i++; // i를 1씩 늘려 언젠가 조건이 거짓이 되게
}
// 안녕하세요 3번 출력
쉽게 —
while은 "조건이 만족되는 동안 계속 돌아라"입니다. 물이 끓을 때까지 불을 켜 두는 것과 같습니다. 언젠가 멈추려면 조건을 거짓으로 만들 장치(i++)가 반드시 있어야 합니다.
for — 횟수가 정해졌을 때
몇 번 돌지 아는 경우엔 for가 깔끔합니다. 시작·조건·증감을 한 줄에 모읍니다.
for (int i = 1; i <= 5; i++) {
System.out.println(i + "번째");
}
// 1번째 ~ 5번째 출력
괄호 안 세 부분은 이렇게 읽습니다.
| 부분 | 예 | 뜻 |
|---|---|---|
| 시작 | int i = 1 | i를 1부터 |
| 조건 | i <= 5 | i가 5 이하인 동안 |
| 증감 | i++ | 한 번 돌 때마다 1씩 |
쉽게 —
for는 "1번부터 5번까지 순서대로"라고 횟수를 못 박아 두는 반복입니다. 1부터 n까지 합 구하기처럼 정해진 범위를 훑을 때 제격입니다.
break와 continue — 멈추기, 건너뛰기
반복 도중 흐름을 바꾸는 두 명령입니다.
for (int i = 1; i <= 10; i++) {
if (i == 5) break; // i가 5면 반복을 즉시 끝냄
if (i % 2 == 0) continue; // 짝수면 이번 회차만 건너뜀
System.out.println(i); // 1, 3 출력
}
break— 반복문을 완전히 빠져나감continue— 이번 회차만 건너뛰고 다음 회차로
단골 함정 — 무한루프
반복을 멈추려면 조건이 언젠가 거짓이 되어야 합니다. 증감식을 빼먹으면 조건이 영원히 참이라 끝없이 돕니다.
int i = 0;
while (i < 3) {
System.out.println("멈추지 않아요");
// i++; ← 이걸 빼먹으면 i가 계속 0이라 영원히 반복!
}

조건을 거짓으로 바꿀 장치(i++)가 있어야 멈춥니다.
규칙 — 반복문 안에는 조건을 거짓으로 바꿀 장치(보통
i++)가 반드시 있어야 합니다. 프로그램이 멈추지 않고 화면이 계속 쏟아진다면, 십중팔구 이 증감식을 빠뜨린 것입니다.
한 장 정리
| 상황 | 문법 |
|---|---|
| 조건이 참인 동안 | while |
| 횟수가 정해진 반복 | for |
| 반복 즉시 종료 | break |
| 이번 회차만 건너뛰기 | continue |
이것만 기억하면 됩니다. while은 조건 동안, for는 정해진 횟수만큼 돕니다. 반드시 멈출 장치(증감식)를 넣어 무한루프를 피하고, break는 완전 종료, continue는 한 번 건너뛰기입니다.
미니 퀴즈
개념을 제대로 잡았는지 직접 풀어 봅니다. 정답은 눌러야 나옵니다.
미니 퀴즈
포켓코딩(JAVA1) 7편 · 예제 출처: 강사 개인 GitHub 저장소. 다음 편: (총정리) 기초 12문제로 복습.