안녕하세요~ 경제적 자유입니다.
오늘은 Java의 for문, enhanced for문, do-while문에 대해 정리해보려고 합니다.
더 자세히 공부하고 싶다면 아래 문서도 함께 참고해보세요.
- 참고 링크: https://www.programiz.com/java-programming/for-loop
- 참고 링크: https://www.programiz.com/java-programming/enhanced-for-loop
- 참고 링크: https://www.programiz.com/java-programming/do-while-loop
1. for문
for문은 반복 횟수가 어느 정도 정해져 있을 때 자주 사용하는 반복문입니다.
기본 문법
for (초기식; 조건식; 증감식) {
// 반복해서 실행할 코드
}
각 부분은 이렇게 보면 됩니다.
초기식은 반복을 시작할 때 한 번만 실행됩니다.
조건식은 반복을 계속할지 판단하는 부분입니다. 조건식이 true이면 반복하고, false이면 반복을 멈춥니다.
증감식은 반복이 한 번 끝날 때마다 실행됩니다. 보통 숫자를 1씩 증가시키거나 감소시킬 때 사용합니다.
흐름으로 보면 아래와 같습니다.
초기식 실행
조건식 검사
조건식이 true이면 코드 실행
증감식 실행
다시 조건식 검사
조건식이 false이면 반복 종료
예제
public class Main {
public static void main(String[] args) {
String name = "상구";
for (int day = 1; day <= 5; day++) {
System.out.println(name + "가 Java 공부를 한 지 " + day + "일차입니다.");
}
}
}
// 실행 결과:
// 상구가 Java 공부를 한 지 1일차입니다.
// 상구가 Java 공부를 한 지 2일차입니다.
// 상구가 Java 공부를 한 지 3일차입니다.
// 상구가 Java 공부를 한 지 4일차입니다.
// 상구가 Java 공부를 한 지 5일차입니다.
2. enhanced for문
enhanced for문은 Java에서 for-each문이라고도 부릅니다.
일반 for문이 인덱스를 직접 다루는 방식이라면, enhanced for문은 배열이나 컬렉션에 들어 있는 값을 하나씩 바로 꺼내서 사용하는 방식입니다.
예를 들어 배열 안에 이름들이 들어 있을 때, 굳이 names[0], names[1]처럼 인덱스를 직접 쓰지 않아도 됩니다.
배열 안의 값을 처음부터 끝까지 하나씩 꺼내고 싶다면 enhanced for문이 훨씬 읽기 좋습니다.
기본 문법
for (자료형 변수명 : 배열또는컬렉션) {
// 반복해서 실행할 코드
}
여기서 자료형은 배열이나 컬렉션 안에 들어 있는 값의 타입입니다.
변수명은 반복할 때마다 하나씩 꺼낸 값을 담는 변수입니다.
콜론 :의 오른쪽에는 반복할 배열이나 컬렉션이 옵니다.
배열에서 첫 번째 값을 꺼냄
변수에 담음
반복문 안의 코드 실행
다음 값을 꺼냄
다시 실행
꺼낼 값이 없으면 반복 종료
예제
public class Main {
public static void main(String[] args) {
String name = "상구";
String[] topics = {"for문", "enhanced for문", "do-while문"};
for (String topic : topics) {
System.out.println(name + "가 공부할 Java 개념: " + topic);
}
}
}
// 실행 결과:
// 상구가 공부할 Java 개념: for문
// 상구가 공부할 Java 개념: enhanced for문
// 상구가 공부할 Java 개념: do-while문
이 코드에서는 topics 배열 안에 문자열 3개가 들어 있습니다.
enhanced for문은 배열의 첫 번째 값인 "for문"을 topic에 담고 출력합니다.
그다음 "enhanced for문"을 꺼내고, 마지막으로 "do-while문"을 꺼냅니다.
배열 안의 모든 값을 다 꺼내면 반복문은 자연스럽게 끝납니다.
이 방식은 배열이나 컬렉션의 모든 값을 처음부터 끝까지 순서대로 확인할 때 사용하기 좋습니다.
다만 인덱스 번호가 꼭 필요한 상황이라면 일반 for문이 더 적절합니다.
예를 들어 “몇 번째 요소인지 같이 출력해야 하는 경우”에는 for (int i = 0; i < 배열.length; i++) 형태가 더 편할 수 있습니다.
3. do-while문
일반적인 반복문은 조건을 먼저 확인한 뒤 실행할지 말지 결정합니다.
하지만 do-while문은 일단 한 번 실행한 다음 조건을 확인합니다.
그래서 조건이 처음부터 거짓이어도, 반복문 안의 코드는 최소 한 번 실행됩니다.
이런 구조는 “일단 한 번은 보여줘야 하는 코드”에 잘 어울립니다.
기본 문법
do {
// 먼저 한 번 실행할 코드
} while (조건식);
여기서 중요한 점은 while (조건식); 뒤에 세미콜론(;)이 붙는다는 것입니다.
일반 while문과 다르게 do-while문은 문장 끝에 세미콜론이 필요합니다.
do 블록 실행
조건식 검사
조건식이 true이면 다시 do 블록 실행
조건식이 false이면 반복 종료
예제
public class Main {
public static void main(String[] args) {
String name = "상구";
int count = 1;
do {
System.out.println(name + " 출석 체크 " + count + "회 완료");
count++;
} while (count <= 3);
}
}
// 실행 결과:
// 상구 출석 체크 1회 완료
// 상구 출석 체크 2회 완료
// 상구 출석 체크 3회 완료
이 코드는 먼저 do 블록 안의 문장을 실행합니다.
처음에는 count가 1이므로 "상구 출석 체크 1회 완료"가 출력됩니다.
그다음 count++로 값이 2가 되고, while (count <= 3) 조건을 검사합니다.
조건이 참이면 다시 실행하고, count가 4가 되는 순간 조건이 거짓이 되어 반복문이 끝납니다.
조건이 처음부터 거짓이어도 한 번은 실행된다
do-while문의 특징을 더 확실히 보려면 조건이 처음부터 거짓인 예제를 보면 됩니다.
public class Main {
public static void main(String[] args) {
String name = "상구";
int count = 5;
do {
System.out.println(name + "는 일단 한 번 실행됩니다.");
} while (count < 3);
}
}
// 실행 결과:
// 상구는 일단 한 번 실행됩니다.
count 는 5, 조건식은 count < 3이므로 처음부터 거짓이지만 출력문은 한 번 실행됩니다.
왜냐하면 do-while문은 조건을 먼저 검사하지 않고, 코드를 먼저 실행한 뒤 조건을 검사하는 구조이기 때문입니다.
이 점이 일반 while문과 가장 큰 차이입니다.
for문, enhanced for문, do-while문은 언제 사용할까?
반복문은 모두 “코드를 여러 번 실행한다”는 공통점이 있습니다.
하지만 실제로 사용할 때는 상황에 따라 조금씩 다르게 선택합니다.
for문은 반복 횟수나 인덱스가 중요할 때 사용하기 좋습니다.
public class Main {
public static void main(String[] args) {
String name = "상구";
for (int i = 1; i <= 3; i++) {
System.out.println(i + "번째 반복: " + name);
}
}
}
// 실행 결과:
// 1번째 반복: 상구
// 2번째 반복: 상구
// 3번째 반복: 상구
enhanced for문은 배열이나 컬렉션의 값을 하나씩 꺼내서 사용할 때 좋습니다.
public class Main {
public static void main(String[] args) {
String[] names = {"상구", "민수", "지훈"};
for (String name : names) {
System.out.println(name + "님 안녕하세요.");
}
}
}
// 실행 결과:
// 상구님 안녕하세요.
// 민수님 안녕하세요.
// 지훈님 안녕하세요.
do-while문은 조건과 상관없이 최소 한 번은 실행해야 할 때 사용합니다.
public class Main {
public static void main(String[] args) {
String name = "상구";
boolean keepGoing = false;
do {
System.out.println(name + "에게 메뉴를 한 번 보여줍니다.");
} while (keepGoing);
}
}
// 실행 결과:
// 상구에게 메뉴를 한 번 보여줍니다.
마무리
오늘은 Java의 for문, enhanced for문, do-while문에 대해 정리해봤습니다.
뭔가 for문은 동일하게 사용을 할 수 있었는데 enhancedfor문 부터는 어려움이 있는것 같네요.. do-while은 무조건 첫번째는 실행한다는 특징이 있는 것도 새로운 것 같아요.
enhancedfor문을 조금 더 복습하면서 알고리즘에 사용할 수 있을때까지 한번 해봐야죠..
공부화이팅!

'웹 개발 > JAVA' 카테고리의 다른 글
| [Java(5)] 흐름제어: break, continue, switch (0) | 2026.06.18 |
|---|---|
| [Java(6)] 배열, 한번에 여러 값을 다루는 가장 기본적인 방법 (0) | 2026.06.18 |
| [Java(1)] Java 변수와 자료형 (0) | 2026.06.17 |
| [Java(3)]조건문, 코드가 스스로 판단하게 만드는 첫 번째 문법 (0) | 2026.06.17 |
| [Java(2)]연산자, 입출력, 표현식·문장·블록 쉽게 이해하기 (0) | 2026.06.17 |