-
중첩 반복문 앞에와 break, continue문에 이름을 지정하여 하나 이상의 반복문을 벗어나거나 반복을 건너 띄기Java/조건문 & 반복문 2020. 10. 30. 13:58
break문은 근접한 단 하나의 반복문만 벗어날 수 있다. 여러 개의 반복문이 중첩된 경우에는 break문으로 중첩 반복문을 완전히 벗어날 수 없다. 이때에는 중첩 반복문 앞에 이름을 붙이고, break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복문을 건너뛸 수 있다.
아래의 구구단을 출력하는 예제를 실습해볼 것이다.
제일 바깥쪽에 있는 for문에 Loop1이라는 이름을 붙이고, j가 7일 때 break문을 수행하도록 했다.
반복문 이름이 지정되지 않은 break문은 자신이 속한 하나의 반복문만 벗어날 수 있다.
하지만 위의 코드처럼 반복문에 이름을 붙여주고 break문에 반복문 이름을 지정해주면 하나 이상의 반복문도 벗어날 수 있다.
j가 7일 대 반복문 Loop1을 벗어나도록 했으므로, 2단의 6번째 줄까지밖에 출력되지 않는다.
만일 반복문의 이름이 지정되지 않은 break문이었다면, 2단부터 9단까지 모두 6줄씩 출력이 될 것이다.
밑의 코드는 이전 글의 break와 continue문에서 실습한 코드를 심화시킨 것이다.
메뉴를 선택하면 해당 연산을 반복적으로 수행할 수 있도록 for문을 추가하였다.
먼저 코드의 반복문부분만 떼어놓고 살펴볼 것이다.
무한 반복문인 while문 안에 또 다른 무한 반복문인 for문이 중첩된 구조를 확인할 수 있는데, while문은 메뉴를 반복해서 선택하게 하고, for문은 선택된 메뉴의 작업을 반복해서 할 수 있게 해준다.
outer :
while ( true ) { //무한반복문
...
for ( ; ;) { //무한반복문
...
if ( num == 0 ) //계산 종료, for문을 벗어난다.
break;
if ( num == 99 ) //전체 종료, for문과 while문을 모두 벗어난다.
breke outer;
...
} //for ( ; ;)
} //while ( true )
전체 코드를 살펴보기
선택된 메뉴에서 0을 입력하면 break문으로 for문을 벗어나서 다른 메뉴를 선택할 수 있게되고,
7을 입력하면 'break outer;'에 의해 for문과 while문 모두를 벗어나 프로그램이 종료된다.
[참고 도서 Java의 정석_기초편] http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994492049&orderClick=LEa&Kc=
'Java > 조건문 & 반복문' 카테고리의 다른 글
Scanner를 통해 사용자로부터 입력받은 수만큼 별 찍기를 반복하기, 자바스크립트로 별 찍기 (0) 2020.11.04 조건문과 반복문 연습문제 (0) 2020.11.03 break문과 continue문 (0) 2020.10.30 continue문 (0) 2020.10.30 break 문 (0) 2020.10.30