3.3 반복 제어 키워드 – break와 continue를 사용한 반복문 제어, 반복문의 라벨(label) 활용
여러분은 반복문 안에서 원하지 않는 흐름을 우아하게 빠져나오는 방법을 알고 계신가요? 자바에서는 단 한 줄의 키워드로 루프를 꺼내거나 건너뛸 수 있습니다.
안녕하세요! 자바 기초 문법을 차근차근 함께 배우고 있는 여러분 반갑습니다 😊 오늘은 반복문을 더욱 유연하게 제어할 수 있는 핵심 키워드 break와 continue에 대해 알아보려고 해요. 이 두 키워드는 반복문에서 특정 조건에 따라 루프를 빠져나오거나 다음 반복으로 건너뛰고 싶을 때 아주 유용하게 사용됩니다. 특히 자바는 라벨(label)을 이용해 중첩 반복문까지도 깔끔하게 제어할 수 있답니다. 자, 지금부터 코딩 실전에서 자주 마주치게 될 이 키워드들을 어떻게 쓰는지 차근차근 알아볼게요!
목차
1. break 키워드 – 반복문 즉시 종료 🚪
break
키워드는 반복문을 즉시 종료할 때 사용되는 제어 키워드입니다. 일반적으로 조건에 따라 더 이상 반복이 필요 없다고 판단될 때 유용하게 사용되며, 반복문 안에 있는 어떤 위치에서든 실행되면 반복문을 빠져나오게 됩니다.
📋 기본 문법 구조
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // i가 5일 때 반복 종료
}
System.out.println("i = " + i);
}
위 예제에서 i == 5인 경우 break
가 실행되며, 반복문은 그 즉시 종료됩니다. 결과적으로 1부터 4까지만 출력되고 끝나게 되죠.
💡 사용 시 유의할 점
-
break
는 가장 가까운 반복문 하나만 종료합니다. - 중첩 반복문에서는 원하는 반복문만 종료하려면 라벨(label)을 사용해야 합니다.
🧾 break 키워드 특징 요약
항목 | 설명 |
---|---|
종료 범위 | 가장 가까운 하나의 반복문만 종료 |
위치 | 반복문 내부 어디든 위치 가능 |
대표 활용 | 무한 루프 탈출, 조건 충족 시 조기 종료 |
2. continue 키워드 – 다음 반복으로 건너뛰기 ⏭️
continue
키워드는 반복문의 현재 반복을 중단하고 다음 반복으로 건너뛰도록 합니다. 반복문 내부에서 특정 조건에 해당할 경우, 나머지 코드를 건너뛰고 루프의 조건 검사 또는 증감식으로 이동합니다.
📋 continue 기본 구조
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // i가 3일 때 아래 코드를 건너뜀
}
System.out.println("i = " + i);
}
위 코드에서는 i = 3일 때 continue
가 실행되어 System.out.println()
부분이 무시되고, i = 1, 2, 4, 5만 출력됩니다.
✅ 언제 사용할까요?
- 특정 조건일 때만 코드를 건너뛰고 반복을 계속하고 싶을 때
- 홀수/짝수 걸러내기, 음수 무시하기 등 필터링 상황에 유용
🧾 continue 키워드 특징 요약
항목 | 설명 |
---|---|
제어 흐름 | 현재 반복을 중단하고 다음 반복으로 이동 |
위치 | 반복문 내부에서 조건문 안에 주로 위치 |
활용 예시 | 조건 필터링, 예외 상황 건너뛰기 |
3. 중첩 반복문에서 break 사용 시 주의점 🌀
중첩 반복문에서 break
를 사용할 경우 가장 안쪽에 있는 반복문만 종료됩니다. 실수로 원하는 반복문이 아닌 내부 반복문만 종료되는 경우가 많기 때문에 주의가 필요합니다.
🔁 예제: 중첩 반복문에서의 break
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
break; // 이 break는 안쪽 for문만 종료
}
System.out.println("i = " + i + ", j = " + j);
}
}
위 코드에서는 j == 2
일 때 내부 반복문만 종료되므로, j = 2
이상이 출력되지 않습니다. 하지만 외부 반복문은 계속 진행되기 때문에 i는 계속 증가하죠.
❗ 실수 주의 포인트
- 외부 반복문까지 종료하고 싶을 경우 라벨(label)을 사용해야 합니다.
- break가 어떤 반복문에 적용되는지 항상 구조를 파악하고 작성하세요.
🧾 중첩 break 동작 정리
상황 | break 동작 |
---|---|
중첩 반복문 내부에서 break 사용 | 가장 안쪽 반복문만 종료 |
외부 반복문까지 종료하고 싶을 때 | 라벨을 붙여서 break 사용 |
4. 라벨을 활용한 break – 바깥 반복문 종료하기 🎯
자바에서는 라벨(label)을 사용해 특정 반복문을 지정하고 break
나 continue
를 통해 원하는 반복문에 직접 적용할 수 있습니다. 특히 중첩 반복문에서 바깥 루프를 종료할 때 유용하게 쓰입니다.
📋 라벨 break 기본 예제
outerLoop:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
break outerLoop; // 바깥 반복문까지 종료
}
System.out.println("i = " + i + ", j = " + j);
}
}
위 코드에서 break outerLoop는 outerLoop
라는 이름이 붙은 바깥 for
문까지 종료시킵니다. 따라서 i = 1, j = 1까지만 출력되고 모든 반복이 멈추게 됩니다.
🛑 라벨 break의 핵심 사용처
- 중첩 반복문에서 외부 루프까지 종료하고 싶을 때
- 특정 조건에 따라 복잡한 흐름을 명확히 정리하고 싶을 때
📌 라벨 break 요약 표
항목 | 내용 |
---|---|
라벨 선언 위치 | 반복문 앞에 작성 (예: outerLoop:) |
라벨 지정 방식 | break 다음에 라벨 이름 작성 |
대표 사용 예시 | 중첩 반복문에서 외부 루프 종료 |
5. 라벨을 활용한 continue – 바깥 반복으로 이동하기 🔁
continue
도 라벨(label)과 함께 사용할 수 있습니다. 이는 특정 반복문을 기준으로 다음 반복으로 건너뛰고 싶을 때 유용합니다. 중첩 반복문 내에서 조건이 맞을 경우 바깥 반복문으로 제어를 옮기고자 할 때 자주 사용되죠.
📋 라벨 continue 예제
outerLoop:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
continue outerLoop; // 바깥 반복문의 다음 반복으로 이동
}
System.out.println("i = " + i + ", j = " + j);
}
}
이 코드는 j가 2일 때 outerLoop
로 라벨이 붙은 반복문의 다음 반복으로 바로 이동합니다. 결과적으로 i = 1, j = 1만 출력되고, j = 2부터는 안쪽 루프는 무시되고 외부 루프로 넘어가죠.
🚀 라벨 continue의 장점
- 특정 조건에 따라 바깥 반복으로 점프 가능
- 복잡한 조건 분기에서 제어 흐름 간결화에 효과적
📌 라벨 continue 요약 정리
항목 | 내용 |
---|---|
적용 대상 | 지정된 라벨의 반복문 |
실행 동작 | 해당 반복문의 다음 반복으로 건너뜀 |
활용 예시 | 중첩 루프에서 조건 필터링 시 유용 |
6. 요약 및 실습 예제 정리 🧠✍️
이번 섹션에서는 반복문의 흐름을 능동적으로 제어할 수 있게 해주는 break와 continue 키워드, 그리고 이를 한 단계 확장해주는 라벨(label) 문법에 대해 배웠습니다. 단순 반복문은 물론이고, 중첩된 구조 속에서도 명확하게 흐름을 제어할 수 있게 되어 더욱 견고한 코드를 작성할 수 있게 되었죠!
🧾 전체 키워드 요약표
키워드 | 설명 | 사용 위치 |
---|---|---|
break | 현재 반복문을 즉시 종료 | 반복문 내부 |
continue | 현재 반복을 중단하고 다음 반복으로 이동 | 반복문 내부 |
라벨 + break | 특정 라벨이 붙은 반복문을 종료 | 중첩 반복문 |
라벨 + continue | 지정된 반복문의 다음 반복으로 이동 | 중첩 반복문 |
💻 실습 예제: break, continue, label 총정리
public class LoopControlTest {
public static void main(String[] args) {
outer:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (i == 2 && j == 2) {
break outer; // 외부 반복문까지 종료
}
if (j == 3) {
continue; // 안쪽 반복문에서 건너뛰기
}
System.out.println("i = " + i + ", j = " + j);
}
}
}
}
이 예제를 직접 실행해보면서 break와 continue, 라벨이 어떻게 상호작용하는지를 느껴보세요. 각각의 키워드가 반복문 흐름에 미치는 영향을 체감하며 코드를 이해하면, 복잡한 로직도 쉽게 정리할 수 있게 됩니다.
실전에서는 코드 가독성과 논리 흐름을 명확하게 하기 위해 불필요한 라벨 사용을 줄이고, 필요한 경우에만 사용하는 습관도 꼭 함께 들이세요!
마무리 및 다음 단계 안내 🌱
자바의 반복문은 단순히 루프를 도는 것에 그치지 않고, break와 continue 같은 제어 키워드를 통해 원하는 흐름으로 제어할 수 있다는 점에서 매우 강력한 기능을 제공합니다. 특히 라벨(label)을 활용하면 중첩 루프 안에서도 유연하게 바깥 흐름을 바꿀 수 있어, 복잡한 조건 처리가 깔끔해지죠.
오늘 학습한 내용은 실무에서도 아주 자주 등장합니다. 예를 들어 사용자 입력이 특정 조건을 만족할 때 루프를 종료하거나, 유효하지 않은 값은 건너뛰는 필터링 처리를 할 때도 이러한 키워드를 효과적으로 사용할 수 있습니다. 앞으로 더 복잡한 알고리즘을 구현할 때 이 구조들을 적극적으로 활용해보세요.
다음 장에서는 반복문을 이용한 실전 문제 해결에 도전해보며, 우리가 지금까지 배운 반복문의 흐름 제어 문법을 직접 활용해볼 거예요. 준비되셨죠? 😄