C에서 중첩된 반복문을 한번에 빠져나올 때 goto가 유용하게 쓰입니다. 그런데 자바엔 C와 다르게 goto가 없습니다.

대신 자바에서는 반복문(loop statement)에 레이블(label)을 붙여 break, continue할 반복문을 지정할 수 있습니다.

 

label1:
for (; ; ) {
    label2:
    for (; ; ) {
        if (condition1) {
            // break outer loop
            break label1;
        }
        if (condition2) {
            // break inner loop
            break label2;
        }
        if (condition3) {
            // break inner loop
            break;
        }
    }
}

반복문에 레이블을 붙이고, 빠져나올 반복문을 지정하는 예제입니다.

break 말고 continue도 가능하긴 합니다만 잘 쓰이지는 않습니다.

 

- Reference: https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.7