반응형

3.3 반복 제어 키워드 – break와 continue를 사용한 반복문 제어, 반복문의 라벨(label) 활용

여러분은 반복문 안에서 원하지 않는 흐름을 우아하게 빠져나오는 방법을 알고 계신가요? 자바에서는 단 한 줄의 키워드로 루프를 꺼내거나 건너뛸 수 있습니다.

반응형

안녕하세요! 자바 기초 문법을 차근차근 함께 배우고 있는 여러분 반갑습니다 😊 오늘은 반복문을 더욱 유연하게 제어할 수 있는 핵심 키워드 breakcontinue에 대해 알아보려고 해요. 이 두 키워드는 반복문에서 특정 조건에 따라 루프를 빠져나오거나 다음 반복으로 건너뛰고 싶을 때 아주 유용하게 사용됩니다. 특히 자바는 라벨(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)을 사용해 특정 반복문을 지정하고 breakcontinue를 통해 원하는 반복문에 직접 적용할 수 있습니다. 특히 중첩 반복문에서 바깥 루프를 종료할 때 유용하게 쓰입니다.

📋 라벨 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 outerLoopouterLoop라는 이름이 붙은 바깥 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. 요약 및 실습 예제 정리 🧠✍️

이번 섹션에서는 반복문의 흐름을 능동적으로 제어할 수 있게 해주는 breakcontinue 키워드, 그리고 이를 한 단계 확장해주는 라벨(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, 라벨이 어떻게 상호작용하는지를 느껴보세요. 각각의 키워드가 반복문 흐름에 미치는 영향을 체감하며 코드를 이해하면, 복잡한 로직도 쉽게 정리할 수 있게 됩니다.

실전에서는 코드 가독성과 논리 흐름을 명확하게 하기 위해 불필요한 라벨 사용을 줄이고, 필요한 경우에만 사용하는 습관도 꼭 함께 들이세요!

마무리 및 다음 단계 안내 🌱

자바의 반복문은 단순히 루프를 도는 것에 그치지 않고, breakcontinue 같은 제어 키워드를 통해 원하는 흐름으로 제어할 수 있다는 점에서 매우 강력한 기능을 제공합니다. 특히 라벨(label)을 활용하면 중첩 루프 안에서도 유연하게 바깥 흐름을 바꿀 수 있어, 복잡한 조건 처리가 깔끔해지죠.

오늘 학습한 내용은 실무에서도 아주 자주 등장합니다. 예를 들어 사용자 입력이 특정 조건을 만족할 때 루프를 종료하거나, 유효하지 않은 값은 건너뛰는 필터링 처리를 할 때도 이러한 키워드를 효과적으로 사용할 수 있습니다. 앞으로 더 복잡한 알고리즘을 구현할 때 이 구조들을 적극적으로 활용해보세요.

다음 장에서는 반복문을 이용한 실전 문제 해결에 도전해보며, 우리가 지금까지 배운 반복문의 흐름 제어 문법을 직접 활용해볼 거예요. 준비되셨죠? 😄

반응형

+ Recent posts