Day 11: Java에서 `break`와 `continue` 문 이해하기
Source: Dev.to
break와 continue란?
Java에서 break와 continue는 루프(for, while, do‑while)와 switch 블록의 흐름을 변경하는 제어문입니다.
break– 루프(또는switch)를 완전히 종료합니다.continue– 현재 반복을 건너뛰고 다음 반복으로 진행합니다.
break 문
break란?
break 문은 특정 조건이 충족될 때 루프나 switch 블록을 즉시 종료합니다. break가 실행된 뒤에는 루프 또는 switch 다음에 오는 문으로 제어가 이동합니다.
break 구문
break;
루프에서의 break
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
출력
1
2
3
4
i가 5가 되면 루프가 멈추고, 4 이후의 숫자는 출력되지 않습니다.
switch 문에서의 break
int day = 2;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
default:
System.out.println("Invalid day");
}
break는 다음 case로 흐르는 것을 방지합니다. break가 없으면 여러 case가 실행될 수 있습니다.
continue 문
continue란?
continue 문은 현재 반복의 나머지 부분을 건너뛰고 바로 다음 반복으로 이동합니다. 루프 자체는 멈추지 않습니다.
continue 구문
continue;
루프에서의 continue
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println(i);
}
출력
1
2
4
5
i가 3일 때 continue 문이 실행되어 3을 출력하지 않고 다음 반복으로 넘어갑니다.
break vs continue
| 기능 | break | continue |
|---|---|---|
| 루프 종료 여부 | 예 | 아니오 |
| 반복 건너뛰기 | 아니오 | 예 |
| 제어 이동 위치 | 루프 뒤 | 다음 반복 |
switch에서 사용 가능 | 예 | 아니오 |
- **
break**는 루프(또는switch)를 완전히 빠져나갑니다. - **
continue**는 현재 반복만 건너뛰고 계속 진행합니다.
두 문 모두 루프 제어와 가독성을 향상시키며 보통 조건문(if)과 함께 사용됩니다.
break를 사용해야 할 때
- 검색 중에 필요한 값을 찾았을 때.
- 입력 검증에 실패하여 루프를 중단해야 할 때.
- 논리적인 이유로 루프를 조기에 종료해야 할 때.
continue를 사용해야 할 때
- 특정 값들을 무시해야 할 때(예: 짝수를 필터링).
- 루프 내에서 잘못되었거나 원하지 않는 데이터를 건너뛰어야 할 때.
- 반복 전체는 계속하면서 일부만 건너뛰고 싶을 때.
break와 continue를 함께 사용하기
for (int i = 1; i <= 10; i++) {
if (i == 3) {
continue; // 3 출력 건너뛰기
}
if (i == 8) {
break; // i가 8에 도달하면 루프 종료
}
System.out.println(i);
}
출력
1
2
4
5
6
7
continue는 숫자 3을 건너뛰고, break는 8을 출력하기 전에 루프를 멈춥니다.
흔히 저지르는 실수
switchcase에서break를 빼먹어 fall‑through가 발생.continue가 루프 흐름에 미치는 영향을 이해하지 못하고 사용해 예기치 않은 결과를 초래.break/continue위치를 잘못 잡아 무한 루프를 만들기.break와continue의 동작을 혼동.
요약
루프 실행을 보다 세밀하게 제어하고 싶을 때 break와 continue를 사용합니다:
break– 루프나switch를 조기에 종료할 때.continue– 루프를 계속 진행하면서 특정 반복만 건너뛰고 싶을 때.
이러한 문들을 적절히 활용하면 더 깔끔하고 효율적인 Java 코드를 작성할 수 있습니다.