코드 스터디

while대신 재귀함수 사용하기

Recstasy 2022. 2. 2. 05:29

 

while문을 사용하는 것보다 범위가 넓다. while문은 특정 조건하에서 검증하는 용도가 좋지만 조건과 범위가 넓어지면 부담스럽다. 가령 아래와 같은 단순한 예제에서는 while문을 사용하면 좋다.

 

  
  let i = 0;
 
  while(i<5){
    console.log('반복'+i)
    i++
  }
 
  // 반복 0
  // 반복 1
  // 반복 2
  // 반복 3
  // 반복 4

[ While문 예제 ]

 

 

하지만 실전에서 저렇게 단순한 상황은 거의 나오지 않는다. 대부분 여러 조건과 외부 함수의 반환값을 계산해야하고, 또 다른 조건값에 부합하지 않을 경우에는 아래와 같이 함수를 다시 실행하는 상황이 대부분이다. 

 

 
  const testRpt = async (val) => {
      const outerFunc = await outFunc(); //외부함수 반환값
      const result = outerFunc ? func01 : func02;
      if(result < '조건'){
          testRpt(val)
      }
      // next
  }

[ 재귀구문 ]

 

while문을 사용할 경우에는 Scope의 범위가 중괄호에 제한되기 때문에 외부의 조건에 반응하기 어렵다. 하지만 위와 같이 재귀를 사용한다면, 다른 외부함수의 결과값의 조합을 통해서 좀더 다채로운 조건에 유연하게 대응할 수 있다. 데이터를 재조합하거나 편집하는 과정에서 재귀는 필수구문이므로 반드시 자신만의 구문을 알아두는 편이 좋다.