3.2 반복문 기초 – for 루프와 while/do-while 루프 구조 및 동작 원리
복잡한 조건문보다 반복문이 더 헷갈리셨던 적 있으신가요? 반복문의 구조와 흐름을 제대로 이해하면, 코딩의 50%는 이미 마스터한 셈입니다!
안녕하세요, 자바를 처음 시작한 여러분을 위한 필수 기초 강의, 오늘은 흐름 제어에서 아주 중요한 개념인 반복문에 대해 배워볼 시간입니다. 반복문은 일정한 조건을 기준으로 코드를 반복 실행하는 구조로, 실무에서도 거의 모든 로직에 들어간다고 해도 과언이 아니에요. 자바에서는 for
, while
, do-while
세 가지 반복문이 기본인데요, 각각의 구조와 동작 원리를 예제와 함께 천천히 익혀볼게요. 반복문을 이해하면 단순한 계산부터 복잡한 데이터 처리까지 다양한 문제를 효율적으로 해결할 수 있답니다!
목차
1. for 루프 구조 이해하기 ✍️
for
반복문은 자바에서 가장 기본적이고 널리 사용되는 반복문 중 하나입니다. "정해진 횟수만큼 무언가를 반복"해야 할 때 가장 적합하죠. 예를 들어, 배열이나 리스트를 순회하거나 숫자를 1부터 10까지 출력하는 등의 작업에서 아주 유용하게 쓰입니다.
for 문 기본 구조
for (초기화식; 조건식; 증감식) {
// 반복할 코드 블록
}
위 구조는 한 줄씩 해석하면 아래와 같습니다:
- 초기화식: 반복문이 시작될 때 한 번만 실행되는 코드 (예:
int i = 0
) - 조건식: 반복을 계속할지 결정하는 불리언(boolean) 조건 (예:
i < 10
) - 증감식: 반복할 때마다 실행되는 식으로 반복 변수의 값을 조절 (예:
i++
)
for 문 예제: 1부터 5까지 출력
public class ForExample {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("현재 숫자: " + i);
}
}
}
이 코드는 1부터 5까지의 숫자를 차례로 출력합니다. 반복 횟수가 명확히 정해져 있을 때 for
문을 쓰는 이유를 쉽게 이해할 수 있는 예제죠.
for문 사용 팁
- 배열이나 리스트를 순회할 때 가장 적합
- 반복 횟수가 명확할 때 사용하면 가독성과 유지보수성이 좋음
break
와continue
를 통해 반복을 제어할 수 있음
자, 이제 for
문은 어렵지 않죠? 😊 다음에는 조건 기반 반복에 적합한 while
문을 알아보겠습니다!
2. while 루프의 개념과 활용 🔁
while
문은 조건을 만족하는 동안 계속해서 반복되는 루프입니다. for
문과는 달리, 반복 횟수가 정해져 있지 않거나 조건에 따라 반복 여부를 유연하게 처리하고 싶을 때 자주 사용돼요.
while 문 기본 구조
while (조건식) {
// 반복할 코드 블록
}
조건식이 true
일 때만 반복이 실행되고, false
가 되면 반복을 종료합니다. 조건식이 처음부터 false면 코드 블록은 단 한 번도 실행되지 않아요.
예제: 1부터 5까지 출력
public class WhileExample {
public static void main(String[] args) {
int i = 1;
while (i <= 5) {
System.out.println("현재 숫자: " + i);
i++;
}
}
}
while
문은 초기화와 증감이 반복문 밖에서 명시적으로 이루어져야 합니다. 실수로 증감식을 빠뜨리면 무한 루프에 빠질 수 있으니 주의하세요!
while문 사용 시 주의사항
- 조건식이
true
에서false
로 바뀌지 않으면 무한 루프 발생 - 루프 내부에서 반드시 조건식에 영향을 주는 코드 포함 필요
- 무한 루프가 필요한 경우에는
break
로 명확히 종료 조건 지정
이처럼 while
문은 조건에 따라 유연하게 반복을 제어할 수 있어서 입력값이 정확하지 않거나, 종료 조건이 외부 입력에 따라 달라지는 경우에 아주 유용하답니다!
3. do-while 루프의 특징과 차이점 🔄
do-while
문은 조건과 관계없이 무조건 한 번은 실행되는 반복문입니다. 조건 검사가 반복문 후에 이뤄지기 때문에, 사용자의 입력을 최소 한 번 받아야 하는 경우나, 반복이 반드시 한 번 이상 일어나야 할 때 사용합니다.
do-while 문 기본 구조
do {
// 반복할 코드 블록
} while (조건식);
보셨다시피 while
키워드가 뒤에 위치하고 세미콜론(;
)으로 마무리되는 점이 특징이에요. 다른 반복문과는 문법적으로도 살짝 다르죠.
예제: 1부터 5까지 출력
public class DoWhileExample {
public static void main(String[] args) {
int i = 1;
do {
System.out.println("현재 숫자: " + i);
i++;
} while (i <= 5);
}
}
while
과 거의 비슷해 보이지만, 조건이 false여도 한 번은 출력됩니다. 이게 바로 핵심 차이예요.
do-while문의 대표 활용 사례
- 사용자로부터 입력을 반복해서 받을 때 (예: 메뉴 선택)
- 최소 한 번은 작업을 실행해야 하는 루틴
예를 들어, 사용자가 'q'를 입력할 때까지 반복하는 프로그램을 만든다고 해봐요. do-while
은 입력값을 먼저 받고 조건을 검사하니, 이럴 때 딱 적합하답니다.
자, 이제 for
, while
, do-while
의 기본 개념과 활용법을 익혔어요. 다음 단계에서는 이 반복문들의 차이점과 사용 시 주의점을 비교해보겠습니다!
4. for와 while의 차이점 비교 ⚖️
앞서 for
문과 while
문, do-while
문을 각각 살펴봤는데요, 이번에는 이 세 가지 반복문을 비교 분석해보는 시간을 가져볼게요. 상황에 따라 어떤 반복문을 선택해야 할지 고민될 때가 많죠. 하지만 각 문법의 용도와 특징만 잘 이해하면 선택은 훨씬 쉬워집니다.
반복문 비교 표
특징 | for문 | while문 | do-while문 |
---|---|---|---|
반복 조건 확인 시점 | 반복 전 | 반복 전 | 반복 후 |
반복 횟수 | 정해져 있을 때 | 모를 때 | 최소 1회는 무조건 실행 |
가독성 | 높음 | 보통 | 낮음 |
사용 예 | 배열/리스트 순회 | 무한 루프 또는 조건 기반 반복 | 메뉴 입력 등 최초 1회 실행 보장 |
반복문 선택 팁
- 반복 횟수가 명확할 때는
for
문 - 조건이 동적으로 바뀌거나 횟수를 모를 때는
while
문 - 사용자 입력 등 최소 1회 실행이 필수인 경우
do-while
문
코드를 처음 배울 땐 어떤 문을 선택해야 할지 헷갈릴 수 있어요. 하지만 반복문의 구조적 차이와 실행 흐름만 명확히 이해한다면, 실수도 줄고 로직 설계도 훨씬 쉬워질 거예요.
5. 반복문의 흐름도와 실행 순서 🔃
반복문을 잘 이해하려면 단순히 문법만 외우는 게 아니라, 코드가 실제로 어떻게 흐르는지 흐름도를 통해 파악하는 것이 아주 중요해요. 특히 복잡한 조건이나 여러 반복문이 중첩되어 있을 때는 흐름을 놓치기 쉽거든요.
for문 흐름도
- 초기화 → 조건 검사 → 코드 실행 → 증감식 → 조건 검사 → 반복
int i = 0; // 초기화
for (; i < 5; i++) { // 조건 검사 → 코드 실행 → i 증가
System.out.println(i);
}
while문 흐름도
- 조건 검사 → 조건이 true면 코드 실행 → 다시 조건 검사 → 반복
int i = 0;
while (i < 5) {
System.out.println(i);
i++; // 조건을 바꾸는 코드가 꼭 있어야 함!
}
do-while문 흐름도
- 코드 실행 → 조건 검사 → 조건이 true면 반복
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 5);
요약 포인트 🎯
-
for
: 초기화 → 조건 검사 → 실행 → 증감 (반복 횟수가 정해졌을 때) -
while
: 조건 먼저 검사 → 조건 만족하면 실행 (유동적인 반복) -
do-while
: 무조건 한 번 실행 → 조건 검사 → 반복 여부 결정
각 반복문의 흐름을 확실하게 익혀두면, 복잡한 알고리즘에서도 "언제 반복을 시작하고, 언제 끝내야 하는지" 판단이 훨씬 쉬워져요. 다음 단계에서는 실수를 줄이기 위한 팁도 함께 알아볼게요!
6. 반복문에서 자주 하는 실수 😵
처음 반복문을 배우다 보면 의도하지 않게 무한 루프에 빠지거나, 조건을 잘못 설정해서 실행이 한 번도 안 되는 경우가 많아요. 이런 실수들은 아주 흔하고, 저도 처음엔 수없이 겪었던 시행착오랍니다.
자주 발생하는 반복문 실수 유형
- 조건식 오류 – 조건이 절대 false가 되지 않아 무한 루프에 빠짐
int i = 0; while (i < 5) { System.out.println(i); // i++; ← 빠뜨리면 무한 루프 }
- 증감식 오류 – 증감 방향이 잘못돼서 조건이 영원히 true인 상태 유지
for (int i = 0; i > -10; i++) { // 조건은 감소해야 true인데 증가 중 System.out.println(i); }
- 세미콜론(;) 실수 – for/while 바로 뒤에 세미콜론 붙여서 반복문이 비어버림
for (int i = 0; i < 5; i++); { System.out.println("출력됨?"); }
- 조건의 중복 처리 미흡 – 반복 조건이 중복되거나 충돌해서 예상보다 더 많이 실행됨
int i = 0; while (i++ < 5) { System.out.println(i); } // 실제 출력은 1부터 5까지가 아닌 1부터 6까지 됨
반복문 실수 줄이는 꿀팁 💡
-
변수 변화 확인용 출력문
을 초기에 자주 넣어보세요 (디버깅용System.out.println()
) -
break
,continue
문으로 루프를 제어하는 습관을 들이세요 - 테스트는 짧고 단순한 루프부터 시작하고 점차 확장하세요
반복문은 처음엔 헷갈릴 수 있지만, 예제와 실습을 통해 충분히 익숙해질 수 있어요. 실수도 경험이고 배움의 일부랍니다 😉
이제 다음 단계에서는 반복문을 더 확실히 이해할 수 있는 실전 예제 실습을 진행해볼게요!
마무리 🎯
자, 여기까지 for, while, do-while 반복문에 대해 차근차근 살펴봤습니다. 반복문은 프로그래밍에서 가장 많이 쓰이는 제어 구조 중 하나이자, 코드의 효율성과 간결함을 결정짓는 중요한 요소예요. 단순한 문법을 넘어서서 흐름도를 이해하고, 조건을 설정하고, 어떤 상황에서 어떤 반복문을 써야 하는지를 판단할 수 있다면 여러분의 자바 실력은 확실히 한 단계 성장하게 됩니다.
이제 여러분도 반복문을 "왜, 어떻게, 언제 써야 하는지"에 대한 감을 잡으셨을 거예요. 앞으로 더 복잡한 로직이나 알고리즘을 공부할 때도 이 반복문이 여러분의 든든한 도구가 되어줄 거예요.
다음 글에서는 반복문과 조건문을 함께 조합한 실전 알고리즘 예제를 다뤄볼 예정이니 기대해주세요! 오늘도 끝까지 읽어주셔서 고맙습니다 😊
'JAVA' 카테고리의 다른 글
[FirstJava] 3.1 조건 분기문 완전 정복 💡 – if문, else문, switch문까지 한 번에! (1) | 2025.05.29 |
---|---|
[FirstJava] 2.6 실습: 변수와 연산자 활용 – 키보드로 두 수를 입력받아 사칙연산 계산하기 (1) | 2025.05.28 |
[FirstJava] 2.5 키보드 입력과 Scanner 사용 – 표준 입력을 통해 값 읽어오기, Scanner 클래스 활용 (1) | 2025.05.27 |
[FirstJava] 2.4 연산자 우선순위 개념과 괄호를 통한 제어 (1) | 2025.05.26 |
[FirstJava] 2.3 연산자와 표현식 – 산술, 대입, 비교, 논리 연산자 및 삼항 연산자 사용법 (1) | 2025.05.23 |