목차
1. 반복문이란?
📌 반복문
💡 반복문은 특정 코드를 여러 번 실행할 수 있도록 도와주는 구문입니다.
즉, 같은 동작을 계속 반복해야 할 때 사용하는 문법입니다.
반복문의 핵심은 "반복 조건"을 정하고, 그 조건을 만족하는 동안 코드를 계속 실행하는 것입니다.
반복문을 사용하면 코드 길이는 줄어들고, 유지보수도 쉬워지며, 실수도 줄어듭니다.
📌 반복문 종류
자바에서 사용할 수 있는 대표적인 반복문은 총 3가지입니다.
| 반복문 종류 | 설명 | |
| for문 | 정해진 횟수만큼 반복할 때 사용합니다. | |
| while문 | 조건이 참인 동안 반복합니다. | |
| do-while문 | 조건과 관계없이 최소 1회 실행 후 반복 여부를 판단합니다. |
각 반복문마다 사용하는 방식과 용도가 다르므로, 상황에 따라 적절히 선택하는 것이 중요합니다.
for / while / do-while 비교
📌 반복문 선택 기준
| 상황 | 추천 반복문 | |
| 반복 횟수를 알고 있을 때 | for문 | |
| 반복 조건을 먼저 확인해야 할 때 | while문 | |
| 무조건 한 번 실행한 후 반복 여부를 판단할 때 | do-while문 |
| 구분 | for문 | while문 | do-while문 |
| 실행 순서 | 조건 확인 후 실행 | 조건 확인 후 실행 | 실행 후 조건 확인 |
| 최소 1회 실행 보장 |
❌ | ❌ | ✅ (조건이 false여도 1회 실행) |
| 반복 조건 기준 | 반복 횟수 명확 | 조건 기반 반복 | 조건 기반 반복 (1회는 반드시 실행) |
| 사용 예 | 1부터 10까지 출력 등 | 사용자가 ‘exit’ 입력할 때까지 반복 등 | 메뉴 반복, 재시도 구조 등 UI에서 자주 사용 |
| 구성 요소 | 초기식, 조건식, 증감식 포함 | 조건식만 존재 (초기/증감식은 내부에 작성) |
조건식만 존재 (조건은 반복 뒤에 검사) |
| 추천 사용 시점 |
반복 횟수가 명확할 때 | 반복 종료 조건이 외부에 의해 결정될 때 |
최소 1회 실행이 보장되어야 하는 상황 |
| 예시 | for (int i = 1; i <= 10; i++) | while (!input.equals("exit")) | do { ... } while (!input.equals("exit")); |
📌 반복문의 기본 흐름도
for, while 반복문은 대부분 다음과 같은 흐름으로 작동합니다.

- 초기식: 반복을 시작할 때 필요한 변수 선언
- 조건식: 반복할 조건 (이 조건이 거짓이면 반복 종료)
- 코드 실행: 반복 수행할 작업
- 증감식: 변수의 값 조정 (예: +1 증가)
2. for 문
📌 for문
for문은 특정 코드를 정해진 횟수만큼 반복 실행할 수 있도록 해주는 제어문입니다.
💡 반복 횟수가 명확할 때 가장 많이 사용하는 반복문입니다.
- for문은 반복 횟수가 정해졌을 때 가장 강력한 도구
- 기본 구조: 초기식 → 조건식 → 실행 → 증감식 → 반복
for문은 아래와 같은 구조를 가지고 있습니다.

| 구성요소 | 역할 |
| 초기식 | 반복을 시작할 때 한 번만 실행 |
| 조건식 | 반복을 계속할지 판단 (true면 반복, false면 종료) |
| 증감식 | 반복이 끝날 때마다 실행되는 부분 (i++ 등) |
📌구성 요소 생략 및 변형
- 조건식 생략 (무한 루프)
for(int i = 0;; i++) {
System.out.println(i); // 무한 반복
}
- 초기식 생략
int i = 1;
for(; i <= 5; i++) {
System.out.println(i);
}
- 증감식 생략 (안에서 처리)
for(int i = 1; i <= 5;) {
System.out.println(i);
i++; // 수동 증가
}
실습 예제
실습 예제 ①: 10명의 학생 이름 출력
Scanner sc = new Scanner(System.in);
for(int i = 1; i <= 10; i++) {
System.out.print(i + "번째 학생 이름 입력: ");
String name = sc.nextLine();
System.out.println("→ 입력된 이름: " + name);
}
실습 예제 ②: 1부터 10까지 합계 구하기
int sum = 0;
for(int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("1부터 10까지의 합은: " + sum);
📌중첩 for문 (Nested for loop) 이란?
for문 내부에 또 다른 for문이 들어간 형태의 반복문입니다.
- 중첩 for문은 '반복 속의 반복'이 필요할 때 사용
- 바깥 반복문: 큰 흐름 (예: 줄, 단 등)
- 안쪽 반복문: 세부 반복 (예: 열, 곱할 수 등)
💡 흔히 "행과 열", "단과 곱해지는 수", "줄과 칸" 같은 2중 구조를 처리할 때 사용합니다.
| 상황 | 중첩 for문이 필요한 이유 |
| 구구단 출력 | 단(dan)과 곱(su)의 이중 반복 구조 |
| 표 형태 출력 | 행(row)과 열(col)의 반복 |
| 별 패턴 만들기 | 줄 수와 별 개수의 연관 관계 처리 |
| 2차원 배열 탐색 | 배열[행][열] 접근 반복 |
실습 예제
실습 예제 ①: 2단~9단 구구단 출력
for (int dan = 2; dan <= 9; dan++) {
System.out.println("[" + dan + "단]");
for (int su = 1; su <= 9; su++) {
System.out.println(dan + " * " + su + " = " + (dan * su));
}
System.out.println(); // 각 단 사이 줄 바꿈
}
- dan은 구구단의 단수 (2~9)
- su는 곱해지는 수 (1~9)
- dan이 한 번 증가할 때마다 su는 1~9까지 반복됨
[2단]
2 * 1 = 2
2 * 2 = 4
...
[3단]
3 * 1 = 3
3 * 2 = 6
...
실습 예제 ②: 별 찍기 - 정사각형 모양
for (int row = 1; row <= 5; row++) {
for (int col = 1; col <= 5; col++) {
System.out.print("*");
}
System.out.println(); // 줄 바꿈
}
출력
*****
*****
*****
*****
*****
실습 예제 ③: 별 찍기 - 삼각형 모양
for (int row = 1; row <= 5; row++) {
for (int col = 1; col <= row; col++) {
System.out.print("*");
}
System.out.println();
}
출력
*
**
***
****
*****
3. while 문
📌 while문이란?
while문은 조건을 만족하는 동안 계속 반복해서 코드를 실행하는 반복문입니다.
for문과의 가장 큰 차이점은 반복 횟수를 미리 알 수 없을 때도 사용할 수 있다는 점입니다.
- while문은 조건 기반 반복 제어에 매우 유용합니다.
- 조건이 참일 때만 반복하므로, 조건을 변화시켜야 반복이 종료됩니다.
- 입력 대기, 무한 루프, 사용자 반복 제어 등 실전에서 자주 사용됩니다.
📌 while문 구조

초기식;
while (조건식) {
// 반복할 코드
// 증감식 또는 조건을 변경하는 코드
}
- 조건이 true일 동안만 반복
- 조건이 false가 되면 반복 종료
- 조건을 변화시키는 코드가 없으면 무한 루프에 빠질 수 있음!
실습 예제
실습 예제 ①: 문자열 문자 하나씩 출력
import java.util.Scanner;
public class WhileExample01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("문자열 입력 : ");
String str = sc.nextLine();
int index = 0;
while (index < str.length()) {
System.out.println(index + "번째 문자 : " + str.charAt(index));
index++;
}
}
}
출력
문자열 입력 : hello
0번째 문자 : h
1번째 문자 : e
2번째 문자 : l
3번째 문자 : l
4번째 문자 : o
실습 예제 ②: 별 찍기 - 입력한 수까지의 합
import java.util.Scanner;
public class WhileExample02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요: ");
int num = sc.nextInt();
int i = 1;
int sum = 0;
while (i <= num) {
sum += i;
i++;
}
System.out.println("1부터 " + num + "까지의 합은: " + sum);
}
}
출력예시
정수를 입력하세요: 7
1부터 7까지의 합은: 28
4. do-while 문
📌 do-while문이란?
조건과 상관없이 블록 안의 코드를 최소 한 번은 실행한 뒤,
조건을 검사하여 반복을 이어갈지 결정하는 반복문입니다.
| 핵심 포인트 | 내용 |
| 최소 1회 실행 | 조건과 상관없이 최초 1번은 무조건 실행됨 |
| 조건 검사는 나중에 | do { } while(조건) 구조 |
| 사용 예 | 사용자 입력, 메뉴 선택, 인증 시도 등 |
| 비교 | while, for와 달리 실행이 먼저 일어남 |
📌 do-while문 구조

do {
// 반복해서 실행할 코드
} while (조건식);
- do 블록 안의 코드를 먼저 1회 실행
- while의 조건식을 나중에 검사
- 조건이 true이면 다시 반복, false이면 종료
실습 예제
실습 예제 ①: exit 입력 전까지 반복 출력
import java.util.Scanner;
public class DoWhileExample01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input;
do {
System.out.print("문자열을 입력하세요 (exit 입력 시 종료): ");
input = sc.nextLine();
System.out.println("입력한 값: " + input);
} while (!input.equals("exit"));
System.out.println("프로그램을 종료합니다.");
}
}
출력
문자열을 입력하세요 (exit 입력 시 종료): hello
입력한 값: hello
문자열을 입력하세요 (exit 입력 시 종료): test
입력한 값: test
문자열을 입력하세요 (exit 입력 시 종료): exit
입력한 값: exit
프로그램을 종료합니다.
실습 예제 ②: 조건 없이 1회 실행되는 반복 확인
public class DoWhileExample02 {
public static void main(String[] args) {
do {
System.out.println("이 메시지는 조건과 관계 없이 한 번은 출력됩니다.");
} while (false);
System.out.println("반복문이 종료되었습니다.");
}
}
출력예시
이 메시지는 조건과 관계 없이 한 번은 출력됩니다.
반복문이 종료되었습니다.
마무리
다음 게시글에서는 break, continue, return 에 대해 학습하곘습니다.
'study > Programming' 카테고리의 다른 글
| [JAVA 기초] 제어문 - 분기문 (1) | 2025.04.30 |
|---|---|
| [JAVA 기초] 제어문 - 조건문 (2) | 2025.04.28 |
| [JAVA 기초] Java API - Scanner 클래스 (1) | 2025.04.27 |
| [JAVA 기초] Java API - Math 클래스 (1) | 2025.04.26 |
| [JAVA 기초] API 개념 중심 (1) | 2025.04.25 |