본문 바로가기

언어공부/Java

자바 보조 제어문 - break 문, continue문 +레이블

자바의 보조 제어문인 break문, continue문에 대해서 알아보자. 추가로 각각의 보조 제어문과 레이블을 같이 사용했을 때에 대해서도 알아보자.

break문+레이블

switch문에서 자주 쓰는 break문은 다른 반복문에서도 사용되며, 반복문 내에서 break문을 만나면 break문이 포함된 가장 가까운 반복문을 벗어난다. 

 

break문 예제 1

위의 예제를 보면, for문은 i가 1~10일 동안 괄호 안의 문장이 반복되는데, if문 조건에서 i를 3으로 나눴을 때 나머지가 0(3의배수)이 되면 break문을 만나 for문을 벗어나게 되므로 출력되는 값은 1,2 이다.

 

break문 예제 2

위의 예제를 보면, 이중 for문으로 a=1일 때, i가 1~5동안 inner for문 문장이 반복되는데 안의 if문 조건에서 i를 3으로 나눴을 때 나머지가 0(3의배수)이 되면 break문을 만나 inner for문을 벗어나게 되므로 출력되는 값은 i->1 i->2 a->1에서  i->1 i->2 a->5까지 출력이 된다.

 

break문 레이블

break문은 가장 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 여러 개의 반복문이 중첩된 경우에는 break문으로 중첩 반복문을 완전히 벗어날 수 없다. 이 때는 중첩 반복문 앞에 이름을 붙이고, break문과 continue문에 해당 이름을 지정해 줌으로써 중첩 반복문을 벗어날 수 있다.

 

break문+레이블 예제 

위의 예제를 보면, break문 예제2와 비슷하지만 break exit_for;으로 중첩반복문을 완전히 벗어난다. 출력되는 값은 i->1 i->2가 된다.

 


continue문+레이블

continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue문을 만나면 아래 문장은 실행하지 않고 반복문의 끝으로 이동하여 다음 반복으로 넘어간다. break문과 다른 점은 break문은 만나면 반복문이 종료되며, continue문은 아래 문장만 실행 안될 뿐 반복문이 조건식이 참일 때까지 계속 반복된다는 점이다. 

 

continue문 예제 1

위의 예제를 보면, for문은 i가 1~10까지 반복되며, if문 조건으로 i가 4의 배수일 때 continue문을 만나 아래의 total+=i;문장은 실행되지 않고 다시 반복되어 총 출력되는 값은 "4의 배수를 뺀 누적합 : 43"이 출력된다. 만약 break문이었다면 i가 1~3일 때만 반복되어 1+2+3인 6이 출력된다.

 

continue문 레이블

continue문은 여러 중첩 반복문일 때 가장 근접한 반복문끝으로 가서 반복되며, continue 레이블은 레이블과 가장 가까운 반복문을 다시 실행하라는 의미이다. 중첩 반복문 앞에 이름을 붙이고, break문과 continue문에 해당 이름을 지정해 줌으로써 중첩 반복문을 벗어날 수 있다.

 

continue문+레이블 예제

위의 예제를 보면, 바깥의 for문은 a가 1~5일 때 반복되며 안쪽의 for문은 i가 1~5일 때 반복되는데 if조건으로 i가 3의 배수일 때 continue 레이블;이 되어 아래 문장들 다 무시하고 바깥쪽 반복문이 반복된다. 그래서 최종적으로 출력되는 값은 안쪽 for문의 i->1,i->2가 바깥쪽 for문 a가 1~5일동안 반복되어 5번 출력 된다.

 

continue문 예제

만약에 continue문+레이블 예제에서 continue;라고만 하면 안쪽 for문 끝으로 이동하기 때문에 i->1 i->2 i->4 i->5 a->1 ~ i->1 i->2 i->4 i->5 a->5까지 출력되게 된다.