✍ 공부/JavaScript

[ 모던 자바스크립트 Deep Dive ] 반복문

Po_tta_tt0 2022. 12. 30. 10:39
반응형

1. 반복문

반복문은 조건식의 평가 결과가 참인 경우 코드 블록을 실행한다. 그 후 조건식을 다시 평가하여 여전히 참인 경우 코드 블록을 다시 실행합니다.
이는 조건식이 거짓일 때까지 반복됩니다.

자바스크립트는 세 가지 반복문인 for, while, do...while문을 제공합니다

반복문 + 레이블문
이 포스팅과 비슷하죠?
하지만 이번 반목문은
for, while, do...while에 대해 조금 더 알아보는 시간을 가질 예정입니다!
레이블문이 궁금하다면 위의 링크로 슝 날아가보세요

for문

for문은 조건식이 거짓으로 평가될 때 까지 코드 블록을 반복 실행합니다다.

for(let i = 0; i < 2; i++){
    console.log(i)
}

for문으로도 무한루프를 만들 수 있습니다.

for문의 변수 선언문, 조건식, 증감식은 모두 옵션이므로 반드시 사용할 필요는 없습니다.
하지만 그렇게 된다면, 무한루프가 되겠죠?

for(;;){
    ...무한루프
}

while문

while문은 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속 반복 실행합니다.

그러면 언제 for문을 쓰고, while문을 쓸까요?

for문 : 반복 횟수가 명확할 때
while문 : 반복 횟수가 불명확할 때

while(true){
    ... 무한루프
}

무한루프에서 탈출하기 위해서는 코드 블록 내에 if문으로 탈출 조건을 만들고 break문으로 코드 블록을 탈출할 수 있습니다

do ... while문

do ... while문은 이름과도 같이 do! 코드 블록을 먼저 실행하고 조건식을 평가합니다.
따라서 코드 블록은 무조건! 한 번 이상 실행됩니다

let count = 0;

do {
    console.log(count)
    count++
} while (count < 3)

break문

break문을 코드 블록을 탈출합니다.
정확히 표현하자면 코드 블록을 탈출하는 것이 아니라 레이블 문, 반복문(for , for... in...... do...while...) 또는 switch문을 탈출합니다.
레이블 문, 반복문, switch문의 코드 블록 이외에 break문을 사용하면 SyntaxError가 발생합니다

 

continue문

continue문은 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킵니다.
break문처럼 반복문을 탈출하지는 않습니다.

 

🤔 : if로도 가능한거아닌가..? 그냥 if로했을때는 실행하고, else면 그냥 아무것도 실행하지 않고...

 

맞아요, 만약 if문에서 실행해야 할 코드가 한 줄이라면 continue문을 사용했을 때보다 간편하고 가독성도 좋습니다.
하지만 if문 내에서 실행해야 할 코드가 길다면 들여쓰기가 한 단계 더 깊어지므로 continue문을 사용하는 편이 가독성이 더 좋습니다

 

차이를 볼까요?

// continue문을 사용하지 않았을 때

for (let i = 0 i < string.length; i++){

    if(string[i] === search){
        count++
        // code
        // code
        // code
    }
}


// continue문을 사용했을 때

for (let i = 0 i < string.length; i++){

    if(string[i] !== search) continue;

    count++
    // code
    // code
    // code
}

 

 

들여쓰기가 얕아졌죠?
플랫하고 예쁜 for문이 되었습니다 ㅎㅎ

 

 

 

 

 

 

반응형