[자바의 정석] 책을 보며 이름 붙은 반복문이 있다는 것을 알게 되었다.
코드를 짤 때 중첩된 반복문을 전체로 break 하고 싶은 경우가 생길 때마다 C언어의
goto
같은 방식이 있으면 좋겠다고 생각했었다.
일반 중첩 반복문과 이름 붙은 반복문을 비교해보겠다.
일반 중첩 반복문 --- 이하 1
public class NamedLoop {
public static void main(String[] args) {
while(true) {
for (int i = 0; i < 100; i++) {
if (i == 10)
break;
System.out.println("Number : " + (i+1));
}
System.out.println("LOOP2 END");
break;
}
System.out.println("LOOP1 END");
}
}
이름 붙은 반복문 --- 이하 2
public class NamedLoop {
public static void main(String[] args) {
LOOP1 : while(true) {
LOOP2 : for (int i = 0; i < 100; i++) {
if (i == 10)
break LOOP1;
System.out.println("Number : " + (i+1));
}
System.out.println("LOOP2 END");
break;
}
System.out.println("LOOP1 END");
}
}
1의 경우는
Number : 1
Number : 2
Number : 3
Number : 4
Number : 5
Number : 6
Number : 7
Number : 8
Number : 9
Number : 10
LOOP2 END
LOOP1 END
2의 경우는
Number : 1
Number : 2
Number : 3
Number : 4
Number : 5
Number : 6
Number : 7
Number : 8
Number : 9
Number : 10
LOOP1 END
break LOOP1;
을 통해 중첩 반복문을 전체로 탈출함을 확인할 수 있다. 이를 필요할 때 이용하면 개발에 더 많은 도움을 줄 수 있을 것 같다.