develop/Java
반복문 제어 break, continue
마스카포네치즈
2021. 1. 27. 00:00
반복문을 멈추거나 생략할 때 사용하는 명령어인 break와 continue
1. break
반복문을 종료.
반복문을 수행하던 도중에 반복문을 종료할 때 사용한다.
if 조건문과 함께 사용되며 반복 조건에 맞춰 반복을 종료시킨다.
현재 break문이 소속된 가장 가까운 반복문을 종료함.
<기본 문법>
반복문...{
if(반복 종료 조건){
break; //현재 진행중인 반복문 종료
}
}
ex.
for(int i = 1; i<= 10;i++){
if(i == 5){
break;
}
}
i가 5일때 반복 종료
2. continue
반복문을 생략
특정 반복을 수행하는 도중 반복문의 실행을 생략하고 다음 반복을 실행한다.
for문과 마찬가지로 조건문들과 결합해서 실행된다.
continue문이 소속된 가장 가까운 반복문의 다음 반복을 실행한다.
(for문의 증감식 or while 문의 조건식으로 이동)
<기본 문법>
반복문(생략) {
if(반복 종료 조건){
continue;
}
}
ex.
for(int i = 1; i<=10; i++){
if(i==5){
continue;
}
}
실행하면 5는 생략하고 1 2 3 4 6 7 8 9 10
만약 while에서 continue를 사용한다면
int i = 1;
while(i<= 10){
if(i==5){
continue;
// 원래는 continue문에 의해 아래쪽 문장을 생략하고
// while문으로 돌아가 다음 반복을 진행해야 하지만 증감식이 continue 문 아래쪽에
// 위치해서 증가하지 않음. 따라서 계속 i값이 5만 나오게 되어 무한루프가 시작됨.
}
i++;
}
그래서 무한루프에 빠지지 않기 위해서 while문에서 continue를 사용할 때는 증감식을 위쪽에 배치해야함.
i = 0;
while(i<=9){
i++;
if(i==5) {
continue;
}
}
3. 중첩 반복문에서 break와 continue
중첩 반복문 내에서의 break 또는 continue문은 가장 가까운 반복문에 적용된다.
안쪽 반복문 내에서 break 또는 continue 문을 사용하여 바깥쪽 반복문에 적용을 시켜야 하는 경우
label을 사용해서 반복문의 위치를 지정해야 함.
적용시켜야하는 반복문 앞쪽에 특정 이름을 갖는 Label을 지정하고
break 또는 continue 문 뒤에 해당 Label 이름을 지정하면 Label에 해당하는 반복문에 break 또는 continue문이 적용됨
레이블명:
반복문(...생략...) {
반복문(...생략...) {
if(조건식) {
break 레이블명;
}
} //안쪽 반복문 끝
} //바깥쪽 반복문 끝
-30분 0초일때 멈추기
EXIT_FOR:
for(int min = 0; min<=59; min++){
for(int sec = 0; sec<=59; sec++){
System.out.println(min + "분" + sec + "초");
if(min==30 && sec==0){
break EXIT_FOR;
}
}
}