코딩 테스트 문제를 풀다 보면 대부분의 문제에서 반복문을 사용하게 되는데 사용하다 보면 꼭 내가 원하던 방향과는 다른 방향으로 흘러가는 경우가 자주 있다. 예를 들어, 반복문 속 특정 조건에서는 다르게 행동하는 코드를 작성하고 반복문의 다음으로 넘어가고 싶다고 하면 continue를 사용하면 된다.
숫자 1부터 5를 출력하는 반복문 속 i가 3일 때, '3이다!'라는 문구를 출력하고 숫자 3은 출력하고 싶지 않다고 가정하자.
for (let i = 1; i <= 5; i++) {
if (i === 3) {
console.log('3이다!');
}
console.log(i);
}
/*
실행 결과
1
2
3이다!
3
4
5
*/
숫자 3은 출력하고 싶지 않았는데 조건문이 지난 다음 console.log(i)를 만나 숫자 3이 출력되버리고 말았다. 이 때, continue를 사용하면 된다.
for (let i = 1; i <= 5; i++) {
if (i === 3) {
console.log('3이다!');
continue;
}
console.log(i);
}
/*
실행 결과
1
2
3이다!
4
5
*/
continue는 코드 블럭 밖으로만 탈출하는 것이 아닌, 반드시 다음 반복문의 처음으로 넘어가게 된다.
for (let i = 0; i < 4; i++) {
if (i >= 1 && i <= 3) {
if (i === 2) {
console.log('2다!');
continue;
}
console.log('1과 3사이에 있다!');
}
console.log(i);
}
/*
실행 결과
1과 3사이에 있다!
1
2다!
1과 3사이에 있다!
3
*/
범위가 크지 않으니 하나하나 살펴보자.
0은 1과 3사이에 속하지 않으므로 바깥쪽 if문이 실행되지 않고 숫자 0만 출력된다.
1은 1과 3사이에 속하므로 바깥쪽 if문이 실행되고 2는 아니므로 '1과 3사이에 있다'가 출력된 뒤 숫자 1이 출력된다.
2는 1과 3사이에 속하므로 바깥쪽 if문과 안쪽 if문이 실행되고 continue를 만나 '1과 3사이에 있다', 숫자가 출력되지 않고 바로 3으로 넘어가게 된다.
3은 1과 3사이에 속하므로 바깥쪽 if문이 실행되고 2는 아니므로 '1과 3사이에 있다'가 출력된 뒤 숫자 3이 출력된다.
이렇게 반복문 속 continue는 위치에 상관하지 않고 무조건 다음 반복문으로 넘어가게 된다.
'TIL' 카테고리의 다른 글
TIL - 20221007 (LRU) (0) | 2022.10.07 |
---|---|
TIL - 20221006 (비트 연산자) (0) | 2022.10.06 |
TIL - 20221004 (유클리드 거리와 맨해튼 거리) (1) | 2022.10.04 |
TIL - 20221003 (0) | 2022.10.03 |
TIL - 20221002 (JavaScript 특정 문자열 제거 정규 표현식) (0) | 2022.10.02 |