[JAVA] 기타제어문과 label
label : 특정 반복문에 이름표를 붙여 두개 이상의 반복을 제어할 수 있는 키워드
**label의 특징
항상 쌍으로 존재
원하는대로 이름 설정가능
자신을 포함하는 상위개념에게만 적용가능
1️⃣for문에서 label 사용하기

k라는 inner와 j라는 inner가 병렬로 2중 for문에 포함되어있고

j inner는 2의 배수가 나오는 순간 break로 빠져나오게 하고

j inner의 상위개념인 i에 label을 붙이면 다음과 같은 결과가 나온다. (k inner는 상위개념이 아님)
j inner에서 break와 label을 만나 짝꿍 label을 찾아 그대로 반복문을 빠져나온다.
2️⃣ switch문에서 label 사용하기

n=0은 10보다 작으므로 if의 break를 만나지 않고 그대로 수행한다.
n++을 만나 숫자가 하나씩 커지는데
3의 배수인 경우 if을 만족하므로 "continue를 만남"을 출력하고 continue를 만나 while의 조건식으로 돌아가 반복한다.
3의 배수가 아닌 경우 if를 빠져나와 숫자 그대로를 출력한다. 마찬가지로 while의 조건식으로 돌아가 반복한다.
👉무한루프오류발생!
1
2
continue를 만남
4
5
continue를 만남
7
...
label을 이용하면?

위의 과정을반복하다가 n이 9가 되면 if을 만족하여 "continue를 만남"을 출력하고 continue와 label을 만난다.
이때 짝꿍 label을 찾아 if를 검증할 기회를 얻게되는데 9>=10은 거짓이므로 break를 만나지 못하고
while로 내려와 다시한번 반복문을 수행한다.

n이 10,11일 때는 if를 만족하지 못해 label을 만날 수 없다. 때문에 if를 검증할 기회도 없다.
10,11은 System.out.println(n); 만 수행하고 while의 조건식으로 돌아간다.

n이 12가 되면 if를 만족해 "continue를 만남"을 출력하고 continue와 label을 만난다.
이때 짝꿍 label을 찾아 if를 검증할 기회를 다시 얻게되는데 12>=10은 참이므로 break를 만나 반복문을 빠져나올 수 있다.