label : for & label : while
중복 loop 를 사용할 때 기본적으로 사용하는 break 는 현재의 curly braces { } 위치만 정지시킨다.
이를 확장하여 중복 loop 의 원하는 구간을 중지하길 원한다면 label 을 붙여 컨트롤할 수 있다.
public class Main
{
public static void main(String[] args) {
label_1 :
for() {
label_2 :
for() {
label_3 :
for() {
if () {
break label_2;
}
}
}
}
}
}
기본적인 사용 형태는 위와 같다.
loop 시작 지점에 특정 (label :) 을 붙여두고 원하는 조건에 대해 break 와 함께 사용한다.
label : for
break label;
for loop 적용
public class Main
{
public static void main(String[] args) {
first:
for(int i = 1; i <= 3; i ++) {
second:
for(int j = 1; j <= 3; j ++) {
third:
for(int k = 1; k <= 3; k ++) {
System.out.println("i = " + i + "; j = " + j + "; k = " + k);
if (j == 2) {
break second;
}
}
}
}
}
}
// i = 1; j = 1; k = 1
// i = 1; j = 1; k = 2
// i = 1; j = 1; k = 3
// i = 1; j = 2; k = 1
// i = 2; j = 1; k = 1
// i = 2; j = 1; k = 2
// i = 2; j = 1; k = 3
// i = 2; j = 2; k = 1
// i = 3; j = 1; k = 1
// i = 3; j = 1; k = 2
// i = 3; j = 1; k = 3
// i = 3; j = 2; k = 1
if (j == 2) {
break second;
}
j 가 2 일 때, break second 를 사용하였을 경우.
public class Main
{
public static void main(String[] args) {
first:
for(int i = 1; i <= 3; i ++) {
second:
for(int j = 1; j <= 3; j ++) {
third:
for(int k = 1; k <= 3; k ++) {
System.out.println("i = " + i + "; j = " + j + "; k = " + k);
if (j == 2) {
break first;
}
}
}
}
}
}
// i = 1; j = 1; k = 1
// i = 1; j = 1; k = 2
// i = 1; j = 1; k = 3
// i = 1; j = 2; k = 1
if (j == 2) {
break first;
}
j 가 2 일 때, break first 를 사용하였을 경우.
while loop 적용
public class Main
{
public static void main(String[] args) {
int i = 1;
position_1 : while(i <= 5) {
int j = 1;
position_2 : while(j <= 5) {
System.out.println("i = " + i + "; j = " + j);
j++;
if (j == 3) {
break position_2;
}
}
i++;
}
}
}
// i = 1; j = 1
// i = 1; j = 2
// i = 2; j = 1
// i = 2; j = 2
// i = 3; j = 1
// i = 3; j = 2
// i = 4; j = 1
// i = 4; j = 2
// i = 5; j = 1
// i = 5; j = 2
public class Main
{
public static void main(String[] args) {
int i = 1;
position_1 : while(i <= 5) {
int j = 1;
position_2 : while(j <= 5) {
System.out.println("i = " + i + "; j = " + j);
j++;
if (j == 3) {
break position_2;
}
}
i++;
}
}
}
// i = 1; j = 1
// i = 1; j = 2