Цикл и return в JavaScript

Пусть у нас есть функция, возвращающая сумму чисел от 1 до 5:

javascriptfunction func() {
  let sum = 0;
  
  for (let i = 1; i <= 5; i++) {
    sum += i;
  }
  
  return sum;
}

let res = func();
console.log(res); // выведет 15

Пусть теперь мы расположим return внутри цикла, вот так:

javascriptfunction func() {
  let sum = 0;
  
  for (let i = 1; i <= 5; i++) {
    sum += i;
    return sum;
  }
}

let res = func();
console.log(res);

В этом случае цикл прокрутится лишь одну итерацию и произойдет автоматический выход из функции (ну и заодно из цикла). А за одну итерацию цикла в переменной sum окажется лишь число 1, а не вся нужная сумма.

Задание 1

Что выведется в консоль в результате выполнения следующего кода:

javascriptfunction func(num) {
  let sum = 0;
  
  for (let i = 1; i <= num; i++) {
    sum += i;
    return sum;
  }
}

console.log( func(5) );

Объясните почему. Что хотел сделать автор данного кода? Исправьте ошибку автора.