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