20/20 Испытание:Вечный вопрос. Не определяются переменные

Программа пишет: “Переменная recommendedType не определена.” (string)

“Переменная finalAmount не определена.” (string)

Код:
var initialAmount = 50000;
var duration = 12;
var simplePercent = 7;
var complexPercent = 6;

var calculateDeposit = function (initialAmount, duration, simplePercent, complexPercent) {
var recommendedType, finalAmount;
var simpleAmount = (((simplePercent / 12) / 100 ) * duration + 1) * initialAmount;
for (i = 0; i <= duration - 1; i++) {
var pr = ((complexPercent / 12) / 100) * initialAmount;
initialAmount = initialAmount + pr;
}

  if (simpleAmount > initialAmount) {
    finalAmount =Math.round(simpleAmount);
    recommendedType = 'simple';
  }else {
    finalAmount = Math.round(initialAmount);
    recommendedType = 'complex';
  }

}

Что не так?

Переменные должны быть определены перед функцией.

Поставил перед функцией, результат тот же самый.

Объявите recommendedType прямо внутри условия if или прямо до нее, но никак не внутри функции.

Не работает. (

Странно, видимо валидатор настроен на то, что переменные должны быть объявлены в самом начале. Вот мой валидный код:

var initialAmount = 50000;
var duration = 12;
var simplePercent = 7;
var complexPercent = 6;
var recommendedType = '';
var finalAmount = 0;

var calculateDeposit = function(initialAmount, duration, simplePercent, complexPercent) {
  
  var finalProfitComplex = initialAmount;
  var finalProfitSimple = initialAmount;
  var currentMonth = 1;
  while(currentMonth <= duration) {
      finalProfitComplex += (complexPercent / 1200) * finalProfitComplex;
      currentMonth++;
    }

  finalProfitSimple += (simplePercent / 1200) * duration * initialAmount;

  if(finalProfitComplex > finalProfitSimple) {
    recommendedType = 'complex';
    finalAmount = Math.round(finalProfitComplex);
  }
  else {
    recommendedType = 'simple';
    finalAmount = Math.round(finalProfitSimple);
  }
  console.log('Рекомендуемый тип депозита - ' + recommendedType + '. Итоговый профит - ' + finalAmount);
};

calculateDeposit(initialAmount, duration, simplePercent, complexPercent);
1 лайк

Определил, как у тебя (оставив свой код), всё равно не работает. Наверное глюк, связанный с браузером и кэшем, а последний чистить неохота, все пароли и адреса перевбивать придётся.
Кстати, тип переменных при объявлении можно не указывать, вроде.
Вообщем черт с кодом, он правильный, и точка))

Вытащил весь код из-под функции и заработало. ) Финальное испытание курса “функции” работает без них)

Всем привет.
В задании написано

Осталось только скопировать её из прошлого задания, вызвать с нужными аргументами и сравнить результаты.

То есть вам надо написать функцию и ниже в коде её вызвать. А переменные должны быть объявлены сверху

Спасибо, заработало)) Свои ошибки заметить трудно.