자바의 보조 제어문인 break문, continue문에 대해서 알아보자. 추가로 각각의 보조 제어문과 레이블을 같이 사용했을 때에 대해서도 알아보자.
break문+레이블
switch문에서 자주 쓰는 break문은 다른 반복문에서도 사용되며, 반복문 내에서 break문을 만나면 break문이 포함된 가장 가까운 반복문을 벗어난다.
위의 예제를 보면, for문은 i가 1~10일 동안 괄호 안의 문장이 반복되는데, if문 조건에서 i를 3으로 나눴을 때 나머지가 0(3의배수)이 되면 break문을 만나 for문을 벗어나게 되므로 출력되는 값은 1,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문 예제2와 비슷하지만 break exit_for;으로 중첩반복문을 완전히 벗어난다. 출력되는 값은 i->1 i->2가 된다.
continue문+레이블
continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue문을 만나면 아래 문장은 실행하지 않고 반복문의 끝으로 이동하여 다음 반복으로 넘어간다. break문과 다른 점은 break문은 만나면 반복문이 종료되며, continue문은 아래 문장만 실행 안될 뿐 반복문이 조건식이 참일 때까지 계속 반복된다는 점이다.
위의 예제를 보면, 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문에 해당 이름을 지정해 줌으로써 중첩 반복문을 벗어날 수 있다.
위의 예제를 보면, 바깥의 for문은 a가 1~5일 때 반복되며 안쪽의 for문은 i가 1~5일 때 반복되는데 if조건으로 i가 3의 배수일 때 continue 레이블;이 되어 아래 문장들 다 무시하고 바깥쪽 반복문이 반복된다. 그래서 최종적으로 출력되는 값은 안쪽 for문의 i->1,i->2가 바깥쪽 for문 a가 1~5일동안 반복되어 5번 출력 된다.
만약에 continue문+레이블 예제에서 continue;라고만 하면 안쪽 for문 끝으로 이동하기 때문에 i->1 i->2 i->4 i->5 a->1 ~ i->1 i->2 i->4 i->5 a->5까지 출력되게 된다.
'언어공부 > Java' 카테고리의 다른 글
자바 다차원 배열 - 2차원 배열 (이차원 배열) 선언 및 생성/ 배열 초기화/ 배열 인덱스/ 배열 길이/ 배열 출력 (0) | 2021.05.02 |
---|---|
자바 배열 선언 및 생성/ 배열 초기화 / 배열 인덱스 / 배열 길이 / 배열 출력 (0) | 2021.05.02 |
자바 반복문 - while문/ 무한루프문/ do~while문 (0) | 2021.05.01 |
자바 반복문 - for문/확장 for문(향상된 for문) (1) | 2021.04.30 |
자바 조건문 - if문 / if-else문 / if-else if문/ switch문 (0) | 2021.04.29 |