miHazy
@miHazy
Начинающий Front-end разработчик

Где я ошибся в цикле do..while?

Написал функцию, рассчитывающую, через сколько лет отец будет вдвое старше сына. Не понимаю, почему итерация цикла проходит всего 1 раз, ведь условие while не было выполнено.

function twiceAsOld(dadYearsOld, sonYearsOld) {
  let i = 0 
  do{
    dadYearsOld++
    sonYearsOld++
    i++
  }while(dadYearsOld / sonYearsOld == 2);
  return i
}
console.log(twiceAsOld(36, 7));
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 1
@lilkan
Начинающий разработчик
В рядовом случае функция еще называется while(true), что говорит о том что она будет исполнятся пока условие истинно. В вашем случае dadYearsOld / sonYearsOld == 2 выкидывает false сразу же, и цикл прекращается.

вот решение
function twiceAsOld(dadYearsOld, sonYearsOld) {
  let i = 0 
  do{
    dadYearsOld++
    sonYearsOld++
    i++
  }while(dadYearsOld / sonYearsOld !== 2);
  return i
}
console.log(twiceAsOld(36, 7));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы