성장일기

1. 이름 붙은 반복문

 반복문에서 break문은 근접해있는 단 하나의 반복문만 벗어나고 있고, 여러 개의 반복문이 중첩되어 있는 경우에는 온전히 반복문을 벗어날 수 없다. continue문도 마찬가지이다. 

 

 이럴 경우 반복문에 이름을 지정해 주고 break문과 continue문 뒤에 반복문 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있다.

 

 

2. 예제코드

loop : for(int i=1; i<10; i++){
  for(int j=1; j<10;j++){
    if(j==5){
      //break;
      break loop;
      //continue;
      //continue loop;
    }
    System.out.printf("%d*%d = %d\n", i, j, i*j);
  }
}

 위의 코드를 보면 반복문 앞에 loop라는 이름을 지정해 주었고, 활용시 각 break문과 continue문 뒤에 loop라는 이름을 붙혀주었다. 따라서 중첩되어 있는 반복문의 경우에도 해당 반복문을 완전히 벗어나거나 계속할 수 있다.

 

출력결과와 실행 흐름은 아래 표의 각 상황에 따른 결과를 살펴보면 이해가 빠를 것이다.

break 1*1 = 1
1*2 = 2
1*3 = 3
1*4 = 4
2*1 = 2
2*2 = 4
2*3 = 6
2*4 = 8
3*1 = 3
3*2 = 6
3*3 = 9
3*4 = 12
4*1 = 4
4*2 = 8
4*3 = 12
4*4 = 16

break loop 1*1 = 1
1*2 = 2
1*3 = 3
1*4 = 4
continue 1*1 = 1
1*2 = 2
1*3 = 3
1*4 = 4
1*6 = 6
1*7 = 7
1*8 = 8
1*9 = 9
2*1 = 2
2*2 = 4
2*3 = 6
2*4 = 8
2*6 = 12
2*7 = 14
2*8 = 16
2*9 = 18
3*1 = 3
3*2 = 6
3*3 = 9
3*4 = 12
3*6 = 18
3*7 = 21
3*8 = 24
3*9 = 27
4*1 = 4
4*2 = 8
4*3 = 12
4*4 = 16
4*6 = 24
4*7 = 28
4*8 = 32
4*9 = 36
continue loop 1*1 = 1
1*2 = 2
1*3 = 3
1*4 = 4
2*1 = 2
2*2 = 4
2*3 = 6
2*4 = 8
3*1 = 3
3*2 = 6
3*3 = 9
3*4 = 12
4*1 = 4
4*2 = 8
4*3 = 12
4*4 = 16

공유하기

facebook twitter kakaoTalk kakaostory naver band