본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
자바의 마법 재봉틀: 반복문으로 코드 자동화하기! 🧵

안녕하세요! 자바 레벨업 여정에 함께하고 계신 여러분! 또 찾아주셨네요! 🚀
지난 시간에는 데이터를 맛깔나게 요리하고(연산자 🍳), 상황에 따라 최적의 길을 찾아가는(조건문 🧭) 방법을 배웠죠! 데이터를 다루고 프로그램의 흐름을 제어하는 방법을 익혔으니, 이제 여러분은 꽤나 똑똑한 프로그램을 만들 수 있는 기초를 다지신 거예요! 👍
하지만 만약 "안녕하세요!"를 100번 출력해야 한다면? 혹은 1부터 1000까지 더해야 한다면? 지금까지 배운 것만으로는 System.out.println("안녕하세요!");를 100번 복사/붙여넣기 하거나, 덧셈을 1000번 해야 할지도 몰라요. 😱 생각만 해도 끔찍하죠?
바로 이럴 때 필요한 것이 오늘의 주인공, 반복문(Loop)입니다! 반복문은 마치 지치지 않는 마법의 재봉틀처럼, 우리가 지정한 조건에 따라 특정 코드 조각을 자동으로 반복 실행해주는 아주 고마운 기능이에요. 🧵✨
자, 이제 지루한 반복 작업에서 우리를 해방시켜 줄 반복문의 세계로 함께 떠나볼까요? 🔥

1. 왜 반복문이 필요할까요? 🤔 (The Need for Loops)
앞서 말했듯이, 프로그래밍을 하다 보면 똑같은 또는 유사한 작업을 여러 번 반복해야 하는 경우가 정말 많아요.
- 사용자 목록 출력하기
- 파일에서 데이터 라인별로 읽어오기
- 특정 조건이 만족될 때까지 계산 반복하기
- 배열의 모든 요소에 접근하기 등등...
이런 작업들을 반복문 없이 일일이 코드로 작성한다면 코드는 엄청나게 길어지고, 수정하기도 어려워질 거예요. 반복문은 이런 문제를 해결해 줍니다!
- 코드 간결성: 짧은 코드로 많은 작업을 처리할 수 있어요.
- 유지보수 용이성: 반복되는 로직 수정 시, 반복문 내부만 수정하면 돼요.
- 효율성: 코드를 훨씬 효율적으로 작성하고 관리할 수 있게 해줍니다.
2. for 문: 정해진 횟수만큼 정확하게! 🔢⚙️
for 문은 반복 횟수가 비교적 명확할 때 가장 많이 사용되는 반복문이에요. 마치 재봉틀에 "실 시작점, 끝나는 지점, 한 땀 간격"을 설정하는 것과 비슷하죠!
for 문의 기본 구조는 이렇습니다:
for (초기화식; 조건식; 증감식) {
// 조건식이 true인 동안 반복 실행될 코드
}
- 초기화식: 반복을 시작하기 전에 딱 한 번 실행됩니다. 주로 반복 횟수를 세는 변수(카운터 변수)를 초기화해요 (예: int i = 0;).
- 조건식: 매 반복 시작 전에 이 조건을 검사합니다. 조건이 true이면 {} 안의 코드를 실행하고, false이면 for 문을 종료합니다 (예: i < 5;).
- 증감식: {} 안의 코드를 실행한 후에 실행됩니다. 주로 카운터 변수의 값을 증가시키거나 감소시켜요 (예: i++ 또는 i--).
예시를 볼까요? "안녕하세요!"를 3번 출력해 봅시다!
for (int i = 0; i < 3; i++) { // i가 0부터 시작해서, 3보다 작은 동안 (0, 1, 2), i를 1씩 증가시키며 반복
System.out.println("안녕하세요! (횟수: " + (i + 1) + ")");
}
실행 결과:
안녕하세요! (횟수: 1)
안녕하세요! (횟수: 2)
안녕하세요! (횟수: 3)
어때요? println을 3번 쓰지 않고도 깔끔하게 반복 작업을 처리했죠? 😉

3. while 문: 조건이 만족하는 동안 무한 반복! (조심!) 🤔⏳
while 문은 특정 조건이 만족되는 동안 코드를 계속 반복 실행합니다. for 문과 달리, 반복 횟수가 명확하지 않고 특정 '상태'가 유지되는 동안 계속 작업을 해야 할 때 유용해요. 마치 "실이 남아있는 동안 계속 바느질해!" 와 같은 느낌이죠.
while 문의 구조는 아주 간단해요:
while (조건식) {
// 조건식이 true인 동안 반복 실행될 코드
// 중요: 루프 내에서 조건식에 영향을 주는 변화가 있어야 함! (무한 루프 방지)
}
- 조건식: 루프에 진입하기 전에 조건을 검사합니다. true이면 {} 안의 코드를 실행하고, 다시 조건을 검사합니다. false가 되면 while 문을 종료합니다.
예시를 봅시다. 숫자를 1부터 시작해서 5가 되기 전까지 출력해 볼게요.
int count = 1; // 시작 값 설정
while (count < 5) { // count가 5보다 작은 동안 계속 반복
System.out.println("현재 카운트: " + count);
count++; // count 값을 1 증가시킴 (이 부분이 없으면 무한 루프!)
}
System.out.println("while 루프 종료! 최종 카운트: " + count); // 종료 시 count는 5
실행 결과:
현재 카운트: 1
현재 카운트: 2
현재 카운트: 3
현재 카운트: 4
while 루프 종료! 최종 카운트: 5
while 문을 사용할 때는 {} 안에서 언젠가는 조건식이 false가 되도록 상태를 변경해주는 코드를 반드시 넣어야 해요! 그렇지 않으면 프로그램이 멈추지 않는 무한 루프에 빠질 수 있으니 주의해야 합니다! 🚨
4. do-while 문: 일단 한 번은 실행! ✅🎬
do-while 문은 while 문과 비슷하지만, 중요한 차이점이 있어요. while 문은 조건을 먼저 검사하고 코드를 실행하지만, do-while 문은 코드를 먼저 실행하고 나서 조건을 검사합니다. 그래서 {} 안의 코드가 최소 한 번은 반드시 실행되는 것을 보장해야 할 때 사용해요. "일단 한 땀 박고 나서 계속할지 보자!" 같은 느낌이랄까요?
do-while 문의 구조는 이렇습니다:
do {
// 최소 한 번은 실행될 코드
// 조건식에 영향을 주는 변화 포함 권장
} while (조건식); // 세미콜론(;) 필수!
예를 들어, 사용자에게 메뉴 번호를 입력받는데, 유효한 번호(예: 1~3)를 입력할 때까지 계속 다시 입력받아야 하는 경우에 유용하게 쓸 수 있습니다.
import java.util.Scanner; // 사용자 입력을 받기 위해 추가
// ... (main 메소드 안이라고 가정)
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.print("메뉴를 선택하세요 (1: 시작, 2: 저장, 3: 종료): ");
choice = scanner.nextInt(); // 일단 사용자로부터 입력을 받음
} while (choice < 1 || choice > 3); // 입력받은 choice가 1~3 범위 밖이면 계속 반복
System.out.println("선택하신 메뉴는 " + choice + "번 입니다.");
scanner.close(); // 스캐너 사용 후 닫아주기
이 코드는 사용자가 1, 2, 3 중 하나를 입력할 때까지 계속 "메뉴를 선택하세요" 메시지를 보여줄 거예요.
5. 흐름 제어: break 와 continue 로 더 스마트하게! 🚦🛑⏭️
반복문을 사용하다 보면 특정 조건에서 반복을 완전히 중단하거나(break), 현재 반복만 건너뛰고 다음 반복으로 넘어가고 싶을 때(continue)가 있습니다.
- break: 현재 실행 중인 반복문(for, while, do-while, switch)을 즉시 종료하고 빠져나옵니다. 마치 비상 정지 버튼 같아요! 🛑
- continue: 현재 반복 중인 코드 블록의 나머지 부분을 건너뛰고, 다음 반복 조건을 검사하거나 증감식을 실행하러 갑니다. 특정 조건의 아이템만 제외하고 계속 진행하고 싶을 때 사용해요. ⏭️
예시를 볼까요? 1부터 10까지 출력하는데, 5를 만나면 반복을 중단하고 싶다면?
for (int i = 1; i <= 10; i++) {
if (i == 5) {
System.out.println("앗! 5를 만났어요. 여기서 멈춥니다!");
break; // i가 5가 되면 for 문을 즉시 탈출!
}
System.out.println("숫자: " + i);
}
// 실행 결과: 1, 2, 3, 4 출력 후 "앗! 5를 만났어요..." 메시지 출력하고 종료
이번엔 1부터 10까지 짝수만 출력하고 싶다면? (홀수는 건너뛰기!)
for (int i = 1; i <= 10; i++) {
if (i % 2 != 0) { // i가 홀수이면 (2로 나눈 나머지가 0이 아니면)
continue; // 아래 println을 실행하지 않고 다음 반복(i++ 하고 조건 검사)으로 넘어감
}
System.out.println("짝수 발견: " + i);
}
// 실행 결과: 2, 4, 6, 8, 10 출력
break와 continue를 적절히 사용하면 반복문의 흐름을 더욱 세밀하게 제어할 수 있답니다!
6. 정리하며 📝
와~ 오늘은 지루한 반복 작업을 대신해 줄 든든한 조수, 자바의 반복문에 대해 배웠습니다! 🤖💨 이제 여러분의 코드는 훨씬 더 강력하고 효율적으로 변할 수 있을 거예요!
- 반복문(Loop): 코드 블록을 특정 조건에 따라 여러 번 실행시키는 구조. 코드 자동화의 핵심!
- for 문: 반복 횟수가 비교적 명확할 때 주로 사용 (초기화, 조건, 증감). 🔢⚙️
- while 문: 특정 조건이 만족되는 동안 계속 반복 (조건 먼저 검사, 무한 루프 주의!). 🤔⏳
- do-while 문: 코드를 최소 한 번은 실행하고 조건을 검사 (일단 실행!). ✅🎬
- break / continue: 반복 흐름을 제어하는 유용한 키워드 (멈추거나 건너뛰기). 🚦🛑⏭️

이제 연산자로 데이터를 요리하고(🍳), 조건문으로 길을 찾고(🧭), 반복문으로 자동으로 작업을 처리(🧵🤖)하는 방법을 모두 알게 되었네요! 이 세 가지를 조합하면 정말 다양한 프로그램들을 만들어 볼 수 있을 거예요!
오늘 배운 내용도 직접 코드를 짜보면서 손에 익히는 것이 중요해요. 특히 반복문은 프로그래밍에서 정말! 정말! 많이 사용되니, 꼭 여러 번 연습해서 익숙해지시길 바랍니다! 💪
모두 다음 시간에 봐요~
'데이터 엔지니어링' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 26일차: 데이터엔지니어링 초격차 강의 후기 (1) | 2025.04.26 |
|---|---|
| 패스트캠퍼스 환급챌린지 25일차: 데이터엔지니어링 초격차 강의 후기 (2) | 2025.04.25 |
| 패스트캠퍼스 환급챌린지 23일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.23 |
| 패스트캠퍼스 환급챌린지 22일차: 데이터엔지니어링 초격차 강의 후기 (0) | 2025.04.22 |
| 패스트캠퍼스 환급챌린지 21일차: 데이터엔지니어링 초격차 강의 후기 (1) | 2025.04.21 |