기본 이해
break와 continue는 제어문에만 사용되는 개념이다.
제어문이라는 것은 for 루프, while 루프, do-while 루프, switch 문 같은 것을 의미한다.
정의
- break: 현재 실행 중인 반복문이나 switch문을 즉시 종료
- continue: 현재 반복을 건너뛰고 다음 반복으로 진행
비유
- break: 영화관에서 영화가 마음에 들지 않아 중간에 퇴장
- continue: TV 채널에서 광고가 나오면 다음 내용으로 건너뛰기
작동방식
- break: 제어문의 블록을 완전히 벗어남
- continue: 현재 반복만 중단하고 다음 반복 조건 검사로 이동
존재 이유와 목적
제어문을 사용하는 중에 특정 조건의 동작을 컨트롤 하고 싶을 경우 사용한다. 사실 if문만으로도 모든 제어가 가능하지만 break와 continue를 사용하면 코드를 더 간결하고 가독성 있게 만들 수 있다.
break
- 불필요한 반복 방지
- 조건 충족 시 즉시 종료 필요
- 리소스 효율성 향상
continue
- 특정 조건의 처리 건너뛰기
- 코드 가독성 향상
- 불필요한 중첩 조건문 방지
핵심 구성요소
break
- 단독 break
- 레이블이 있는 break
- switch문에서의 break
- 반복문에서의 break
continue
- 단독 continue
- 레이블이 있는 continue
- 반복문 내부에서만 사용 가능
주의사항과 일반적 오류
초보자 실수
- break와 continue 혼동
- 잘못된 위치에서 사용
- 무한 루프 발생
- 레이블 잘못 사용
디버깅 포인트
- 실행 흐름 추적
- 반복문 종료 조건 확인
- 변수값 변화 관찰
비교 분석
구분 | break | continue |
---|---|---|
동작 | 반복문 종료 | 현재 반복만 스킵 |
사용범위 | 반복문, switch | 반복문만 |
실행흐름 | 블록 외부로 이동 | 다음 반복으로 이동 |
주용도 | 조건 충족시 종료 | 특정 조건 건너뛰기 |
실무 활용
적용 사례
- 검색 알고리즘
- 데이터 필터링
- 예외 상황 처리
- 사용자 입력 처리
public class BreakContinueExample {
public static void main(String[] args) {
// 1. 기본 break와 continue
System.out.println("1. 기본 break와 continue");
for(int i = 0; i < 5; i++) {
if(i == 2) continue; // 2일 때 건너뛰기
if(i == 4) break; // 4일 때 반복문 종료
System.out.println("i = " + i);
}
// 2. 중첩 반복문에서의 break와 continue
System.out.println("\n2. 중첩 반복문");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(j == 1) continue; // j가 1일 때 건너뛰기
if(i == 2) break; // i가 2일 때 내부 반복문 종료
System.out.println("i = " + i + ", j = " + j);
}
}
// 3. 레이블을 사용한 break와 continue
System.out.println("\n3. 레이블 사용");
outer: for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if(i == 1 && j == 1) {
break outer; // 외부 반복문까지 완전히 종료
}
System.out.println("i = " + i + ", j = " + j);
}
}
// 4. while문에서의 break와 continue
System.out.println("\n4. while문");
int k = 0;
while(k < 5) {
k++;
if(k == 2) continue; // 2일 때 건너뛰기
if(k == 4) break; // 4일 때 반복문 종료
System.out.println("k = " + k);
}
}
}
///실행 결과
1. 기본 break와 continue
i = 0
i = 1
i = 3
2. 중첩 반복문
i = 0, j = 0
i = 0, j = 2
i = 1, j = 0
i = 1, j = 2
3. 레이블 사용
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 1, j = 0
4. while문
k = 1
k = 3
베스트 프랙티스
- 가능하면 단순한 흐름 유지
- 레이블 사용 최소화
- 명확한 종료 조건 설정
- 적절한 주석 처리
- 가독성 있는 코드 구조 유지
이전 개념
- 반복문 (for, while)
- 조건문 (if, switch)
- 제어 흐름
후속 개념
- 메소드
- 예외 처리
- 객체지향 프로그래밍
'Java > 자바 학습' 카테고리의 다른 글
자바 싱글톤 패턴 (Singleton Pattern) (0) | 2025.05.18 |
---|---|
Java의 this 키워드 (1) | 2025.05.18 |
자바의 제어문(조건문, 반복문, 분기문) (0) | 2025.05.18 |
연산자(Operators) (0) | 2025.05.18 |
명시적 형변환 vs 암시적 형변환 (2) | 2025.05.18 |