본문으로 바로가기
반응형

Java에서 반복문 실행 중 특정 조건을 만족했을때 아래와 같이 break 명령어를 사용하여 현재 위치의 반복문을 빠져나올 수 있습니다. 
for(int i=0; i<3; i++){
   System.out.println("i="+i);
   if(i==1){
      break; // end of Loop(i)
   }
}

▼▼▼

i=0
i=1

만약 중첩 반복문(이중 for문)일 경우에 break를 사용할 경우에는 현재 위치한 가장 안쪽의(j) 반복문에서 빠져나오고 다시 제일 바깥쪽의 반복문(i)을 실행하게 됩니다.
for(int i=0; i<3; i++){
   for(int j=0; j<3; j++) {
      System.out.println("i=" + i + " j=" + j);
      if (j == 1) {
         break; // end of Loop(j)
      }
   }
} 

▼▼▼

i=0 j=0
i=0 j=1
i=1 j=0
i=1 j=1
i=2 j=0
i=2 j=1


원하는 조건이 i와 관계없이 j==1 만 만족이라 위와 같이 불필요한 반복(i=1,i=2) 없이 바로 전체 반복문에서 빠져 나오고 싶을 때가 있습니다. 이때는 각 반복문마다 라벨을 지정해 주고 해당 라벨명을 break 명령에 기재하여 원하는 반복문 단계를 바로 빠져 나올 수 있습니다. 
Loop1 :
for(int i=0; i<3; i++){
   Loop2 :
   for(int j=0; j<3; j++){
      System.out.println("i="+i + " j="+j);
      if (j==1){
         break Loop1;     // end of Loop1(i)
         //break;         // end of Loop2(j)
         //break Loop2;   // end of Loop2(j)
      }
   }
}

▼▼▼

i=0 j=0
i=0 j=1

위와 같이 첫번째 j==1 조건이 만족한 후 (i==0) 바로 전체 반복문이 종료 되는 것을 확인 하실 수 있습니다. 참고로 하단에 주석처리된 break; break Loop2;를 사용하면 두번째 예제와 동일하게 Loop2(j) 반복문을 빠져 나오게 됩니다.


반응형

댓글을 달아 주세요

  1. Favicon of https://honoluulu-life.tistory.com BlogIcon 호놀률루 2022.08.18 22:25 신고

    감사합니다!! 알고리즘 문제 푸는데 도움이 되었어요!
    배운 내용을 제 블로그에 정리하고 싶은데. 올리신 내용을 출처 남기고 참고해도 괜찮을까요??