continue 문은 break 문과 유사하다. 다만 루프를 빠져 나오지 않고 새로운 반복을 시작하는 점이 다르다.
continue 문의 문법은 break와 마찬가지로 간단하다.
continue 문 역시 레이블과 함께 쓰일 수 있다.
continue 문은 단독 형식과 레이블 형식에 관계없이 항상 while, do/while, for, for/in 루프의 몸체 내부에서 사용되어야만 한다. 이외의 부분에 사용되면 문법 에러가 발생한다.
continue 문이 실행되면 이를 감싸고 있던 루프의 현재 반복을 종료하고 다음 반복을 시작한다.
이때 루프의 종류에 따라 각기 다른일이 일어난다.
- while 루프에서는 루프의 시작 부분에 지정된 '표현식'을 다시 테스트 한다. 결과가 true이면 루프의 몸체 처음주터 다시 실행을 시작한다.
- do/while 루프에서는 일단 루프 몸체 처음부터 다시 실행을 시작한다.
- for 루프에서는 '증가' 표현식을 평가한 후 '테스트' 표현식을 테스트하여 다음 반복을 수행할지 여부를 판단한다.
- for/in 루프에서는 다음 차례의 프로퍼티 이름을 루프 시작에서 지정된 변수에 할당한 후 루프를 다시 시작한다.
while 루프와 for 루프에서 continue 문이 다르게 작동함을 주목하다. while 루프는 루프 조건으로 곧장 귀환하는 반면 for 루프는 일단 '증가' 표현식을 평가한 후에 루프 조건으로 귀환한다. 앞에서 for 루프에 대해 논할 때, for 루프의 작동을 그와 동등한 while 루프를 들어 설명한 바 있다.
하지만 continue 문은 이 두 종류의 루프에서 서로 다르게 작동하기 때문에, while 루프를 사용해서
for 루프를 완벽하게 흉내 내기는 불가능하다. 다음 예제에서는 루프에서 에러가 일어날 경우 형재의
반복에서 빠져 나오기 위해 (레이블 없이 단독으로) continue 문을 사용하는 코드를 보여 준다.
break 문과 마찬가지로 continue 문 역시 중첩된 루프 안에서 레이블과 함께 쓰는 형식으로 사용될 수 있다. 이런 때는 가장 안쪽 루프가 재시작 대상이 아닐 경우다. 또한 break 문과 마찬가지로 continue 문과 '레이블이름' 사이에도 줄나눔이 허용되지 않는다.
'IT_Programming > JavaScript' 카테고리의 다른 글
자바스크립트 완벽가이드 - 6.14 function (0) | 2010.07.04 |
---|---|
자바스크립트 완벽가이드 - 6.13 var (0) | 2010.07.04 |
자바스크립트 완벽가이드 - 6.11 break (0) | 2010.07.04 |
자바스크립트 완벽가이드 - 6.10 레이블 (0) | 2010.07.04 |
자바스크립트 완벽가이드 - 6.9 for/in (0) | 2010.07.04 |