반복문을 이용하여 여러 가지 로직을 구현하다보면, 반복문 안에 있는 나머지 부명령문들의 실행을 생략하고 그 다음 번 반복을 계속하도록 만들어야 할 경우도 있습니다.
이번에는 그럴 때 사용할 수 있는 continue 문의 작성방법을 알아보겠습니다.
가장 많이 사용하는 continuew 문의 형식은 다음과 같이 continue 키워드 단독으로 사용하는 형식입니다.
continue 문의 기본형식
continue;
반복문 안에서 이런 continue 문을 만나게 되면 실행의 흐름은 즉시 반복문의 다음 번 반복 과정으로 진행됩니다.
그렇기 때문에 continue 문 다음에 있는 부명령문들은 실행되지 않게 됩니다.(일종의 건너띄기)
다음은 continue 문의 사용 예를 보여주는 프로그램입니다.
class ContinueExample {
public static void main (String args[]) {
for ( int cnt = 0; cnt < 10; cnt++ ) { < ┐
if ( cnt == 5 ) │ cnt가 5이면 for 문의 다음번 반복 과정을 계속합니다.
continue; ───┘
System.out.println(cnt); -> cnt가 5일 때 이 행의 부명령문은 실행되지 않는다.
}
System.out.println("Done.")
}
}
실행결과
0
1
2
3
4
6
7
8
9
Done.
위의 결과를 보면 0부터 9까지의 수 중 5가 출력되지 않았음을 확인할 수 있습니다.
while 반복문 안에서도 cintinue 문을 쓸 수 있지만, while 반복문의 반복과정은 for 문과 다르기 때문에 주의가 필요합니다.
class continueExample {
public static void main(String args[]) {
int cnt = 0;
while ( cnt < 10) { < ┐
if ( cnt == 5 ) │cnt가 5이면 while 문의 다음번 반복 과정을 계속합니다.
continue; ───┘
System.out.println(cnt);
cnt++;
}
System.out.println("Done.")
}
}
이 프로그램은 0부터 4까지 출련한 후 cnt 값이 5가 되면 continue 문을 실행합니다.
이 continue 문은 실행의 흐름을 while 문의 조건식으로 이동시키는데, 이 때 조건식은 5 < 10으로 만족되기 때문에 다시 while 문 안의 명령문들이 실행됩니다.
그런데 여기서 fi 문의 조건식은 cnt == 5가 되기 때문에 continue 문이 다시 실행되어 무한 루프에 빠지게 됩니다.
그렇기 때문에 이 프로그램을 끝내기 위해서는 강제종료해야 합니다.
중첩된 반복문의 바깥쪽 반복을 계속하는 방법
중첩된 반복문 안에서 continue 문을 사용하면 안쪽에 있는 반복문에만 적용됩니다.
바깥쪽 반복문에도 적용시키기 위해서는 라벨을 사용합니다.
loop: -> for문에 붙여진 라벨
for ( int cnt = 0; cnt < 100; cnt++ ) {
System.out.println(cnt);
if ( cnt == 5 )
continue loop; -> 라벨을 지정한 continue 문
}
라벨을 붙이 continue 문의 예
class ContinueExample
pubilc static void main(String args[]) {
outerLoop:
for ( int row = 0; row < 3; row++) { < ┐
for ( int col = 0; col < 5; col++) { │
if ((row == 1) && (col ==3)) │ row가 1이고 col이 3이면 바깥쪽 for 문의 다음번 반복 과정을 계속합니다.
continue outerLoop; ───┘
System.out.rintln("(" + row + ", " + col + ")");
}
}
System.out.println("Done.")
}
}
실행결과
(0, 0)
(0, 1)
(0, 2)
(0, 3)
(0, 4)
(1, 0)
(1, 1)
(1, 2)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
Done.
위 결과를 보면 (1, 2) 다음에 바로 (2, 0)이 출력된 것을 볼 수 있습니다.
row가 1이고 col이 3일 때 바깥쪽 반복문의 다음 번 반복 과정으로 실행의 흐름이 진행되었기 때문에 이런 결과가 나온 겁니다.
'자바 > 뇌를 자극하는 JAVA' 카테고리의 다른 글
반복문을 빠져 나가는 break 문 (0) | 2013.05.01 |
---|---|
반복문 (0) | 2013.04.28 |
switch 조건문 (0) | 2013.04.28 |
if 조건문 (0) | 2013.04.28 |
배열의 선언, 생성, 이용 (0) | 2013.04.28 |