JavaScript에서 루프와 return
1부터 5까지의 숫자 합을 반환하는 함수가 있다고 가정해 보겠습니다:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // 15를 출력합니다
이제 return을 루프 내부에 다음과 같이 배치해 보겠습니다:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
이 경우 루프는 단 한 번의 반복만 실행한 후 함수(그리고 함께 루프)에서 자동으로 빠져나오게 됩니다. 그리고 한 번의 루프 반복으로 변수 sum에는 전체 필요한 합이 아닌 숫자 1만 저장됩니다.
다음 코드 실행 결과 콘솔에 무엇이 출력될까요?
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
그 이유를 설명해 보세요. 이 코드의 작성자가 무엇을 하려고 했을까요? 작성자의 실수를 수정해 보세요.