JavaScript

0의 Boolean을 이용한 n번 실행되는 반복문

YoHaYo 2023. 10. 4. 16:38
728x90
반응형

자바스크립트에서는 0이 Boolean 값으로 변환될시 false가 되는 특성을 가지고 있습니다.

https://www.w3schools.com/jsref/jsref_type_conversion.asp

다음과 같은 예시코드로 확인할 수 있습니다.

const x = 0;

console.log("Number : " + Number(x)); // 0
console.log("String : " + String(x)); // 0
console.log("Boolean: " + Boolean(x)); // false

const y = 1;
console.log("Number : " + Number(y)); // 1
console.log("String : " + String(y)); // 1
console.log("Boolean: " + Boolean(y)); // true

 

이 특성을 이용해서 while 구문으로 n번 실행되는 반복문을 만들어보겠습니다. 

function test(n){
  while(n--){
    console.log(n,"실행")
  }
}
test(3); 

// 실행결과
// 2 '실행'
// 1 '실행'
// 0 '실행'

while은 조건이 true일때까지 무한루프를 실행합니다.

이때 후위 감소연산자 n--가 함수의 인자로 받은 값을 1씩 감산해 나갑니다.

그러다가 위에서 보다시피 0이 되면 false가 반환되어 무한루프는 종료되고 함수는 실행을 멈추게 되는 원리입니다.

 

※ 참고

이때 n--로 후위 감소연산자를 사용해야 n회 실행됩니다. 

만약 --n로 전위 감소연산자를 사용하면 n-1회 실행됩니다. 

그 이유는 다음 링크를 참고해주세요.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Decrement

 

감소 연산자 (--) - JavaScript | MDN

감소(--) 연산자 는 피연산자를 감소(1을 뺌)시키고 연산자의 위치에 따라 감소하기 전이나 후의 값을 반환합니다.

developer.mozilla.org

 

반응형