티스토리 뷰
// break와 continue
let myChoice = 2;
switch(myChoice){
case 1:
console.log('토끼를 선택한 당신, ...')
break;
case 2:
console.log('고양이를 선택한 당신, ...')
break;
case 1:
console.log('코알라를 선택한 당신, ...')
break;
case 1:
console.log('강아지를 선택한 당신, ...')
break;
default:
console.log('1에서 4사이의 숫자를 선택해 주세요.')
}
break은 이미 switch문에서도 한번 사용했던 적이 있는데 소괄호 안에 비교할 값을 두고 case로 조건값을 정해서 비교할 값이 조건값에 일치하는 경우에는 그 case에 해당하는 동작 부분을 수행합니다. 이때 break가 없을 경우에는 case 아래의 모든 동작을 수행하기 때문에 break로 이 switch문을 빠져나왔습니다.
같은 원리로 break는 반복문에서도 사용할 수 있습니다.
// break와 continue
let i = 1;
while (i <= 10) {
console.log(i);
i++;
break;
}
위 코드는 while 반복문으로 1부터 10까지 출력하는 코드입니다. 저장하고 실행해보면 1부터 10까지 출력이 되는 것을 확인할 수 있습니다. 그런데 여기에 break을 작성해주면 1만 출력이 됩니다.
실행되는 순서를 보면 처음에 i가 1인 상태로 반복문 실행이 되는데 i를 출력하고 i를 증가시킨 다음에 break문을 만나기 때문에 이 whlie문을 빠져나가게 되면서 더 이상 반복을 하지 않게 되는 것입니다.
// break와 continue
let i = 1;
while (i <= 10) {
if(i === 7){
break;
}
console.log(i);
i++;
}
if문으로 i가 7일 때 break이라고 작성하면 반복이 실행되는 중에 i가 7이 되는 순간 break가 실행이 됩니다. 저장하고 실행해보면 1부터 7까지 출력되는 것을 확인할 수 있습니다.
// break와 continue
for(let i = 1; i <= 10; i++){
console.log(i);
if(i === 7){
break;
}
}
위 while문을 for문으로 바꾸면 이렇게 되는데 저장하고 실행해보면 for문에서도 똑같이 1부터 7까지 출력되는 것을 확인할 수 있습니다. 이렇게 break를 반복문에서 활용하면 반복문에 조건 부분과 상관없이 반복이 실행되는 도중에 빠져나갈 수 있습니다.
// break와 continue
for(let i = 1; i <= 10; i++){
if(i % 2 === 0){
continue;
}
console.log(i);
}
똑같이 1부터 10까지 출력하는 코드입니다. break가 반복문 전체를 빠져나오는 거라면 continue는 동작 부분을 한번 건너뛰는 것입니다. 다시 말해서 continue를 만나게 되면 그 아래 코드들은 실행되지 않고 바로 다음 단계로 넘어가는 것입니다. for문의 경우에는 동작 부분의 다음 단계는 추가 동작 부분입니다.
if문으로 i가 짝수일 때 continue를 해주는 코드를 추가하면 1부터 10까지 숫자 중에서 홀수만 출력됩니다.
처음에 for문이 동작할 때 초기화 부분에서 변수 i가 선언이 됩니다. 그렇게 되면 1이 할당된 변수 i가 조건 부분에서 평가가 됩니다. 1은 10보다 작기 때문에 true로 판단돼서 동작 부분이 실행되는데 if문이 또 나왔기 때문에 조건 부분을 확인하게 됩니다. 그런데 1은 2로 나누어 떨어지지 않기 때문에 안에 있는continue는 실행되지 않습니다. 그렇기 때문에 콘솔에 바로 1이 출력됩니다.
그런데 그 다음을 보면 추가 동작 부분에서 i가 2가 되고 조건 부분을 통과하게 됩니다. 그렇게 되면 if문의 조건 부분도 충족을 하기 때문에 continue가 실행이 됩니다. 그렇게 되면 이 실행 중인 동작 부분을 건너뛰고 그 다음 동작, 추가 동작 부분으로 넘어가게 됩니다. 그래서 continue 아래에 있는 console.log(i)가 무시 된 것입니다. 이런 식으로 반복되기 때문에 짝수는 무시되고 홀수일 때만 console.log(i)가 실행됩니다.
let i = 1;
while(i <= 10){
if(i % 2 === 0){
i++;
continue;
}
console.log(i);
i++;
}
위 코드를 while문으로 작성하면 이렇게 됩니다. 코드를 보면 i를 증가시켜주고 있습니다. 여기서 i를 증가시켜 주는 이유는 while문은 for문과 다르게 추가 동작 부분이 없기 때문입니다. while문은 continue가 실행돼서 동작 부분을 건너뛰게 되면 바로 조건 부분으로 넘어가게 됩니다. 그래서 미리 i를 증가시켜 줘야 되는 것입니다.
만약 여기서 i를 증가시켜 주지 않으면 i가 2인 채로 무한히 반복하는 코드가 되어버립니다. 저장하고 실행하면 while문도 똑같이 홀수를 출력하는 것을 확인할 수 있습니다. 만약 짝수만 출력하고 싶다면 조건부분을 !==fh 바꾸면 됩니다.
정리하면 continue를 반복문에서 활용하면 반복하는 동작 부분을 필요에 따라 건너뛰게 할 수도 있습니다.
'프론트엔드 > JavaScript' 카테고리의 다른 글
[객체] 10. for...in 주의사항 (0) | 2022.10.02 |
---|---|
[객체] 09. for...in 반복문 (0) | 2022.10.01 |
[제어문] 13.while문 (0) | 2022.09.29 |
[제어문] 10. for문 Tip (0) | 2022.09.28 |
[제어문] 09. for문 (0) | 2022.09.27 |
- Total
- Today
- Yesterday
- findindex
- 불변 객체
- redux thunk
- 느슨한 타입(loosely typed)
- filter
- redux-middleware
- some
- foreach
- find
- undefined
- redux middleware
- 비교 연산자
- 얕은복사
- 타입변환
- EVERY
- 동적(dynamic) 언어
- null
- redux
- map
- redux-thunk
- 참조형 데이터
- 기본형 데이터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |