[JAVA] 라벨(label)을 사용해서 중첩 반복문 빠져나오기

FE.1·2024년 4월 17일
2
post-thumbnail

알고리즘 문제를 풀다보면 중첩 반복문을 사용하는 경우가 있다.

int[][] arr = new int[n][n];
 
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
	    // code...           
    }
}

상단의 2차원 배열에서 1을 찾았을 경우, 중첩 반복문을 빠져나오는 코드를 작성해보자.

int[][] arr = new int[n][n];
 
boolean flag = false;
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        if (arr[i][j] == 1) {
            flag = true;
            break;
        }
    }
    if (flag) {
    	break;
    }
}
  • flag 변수를 선언하여 1을 발견했을 때 flag의 값을 바꿔준 후 안쪽 반복문을 빠져나온 뒤, flag 변수를 확인해서 바깥쪽 반복문의 break 처리를 해준다.

  • 이와 같은 방식을 라벨(label)을 통해 더 편하게 중첩 반복문을 빠져나올 수 있다.


라벨(label) 적용

첫 번째 반복문에 flag라벨(label)을 부여해보자. 첫 번째 반복문 앞쪽에 (라벨명): 을 명시하면 해당 반복문을 부여한 라벨명으로 부를 수 있게된다.

flag:     
for (int i = 0; i < n; i++) {
	for (int j = 0; j < n; j++) {
		if (arr[i][j] == 1) {
        	break flag;
        }
    }
}

break문을 통해서 1을 찾았을 경우, 가장 바깥쪽 반복문인 flag를 빠져나가는 코드를 작성할 수 있습니다. 마찬가지로 중첩 반복문에서 안쪽 내용을 무시하고, 다시 위로 돌아가고 싶을 경우, continue문도 이용 가능하다.

profile
공부하자!

0개의 댓글