Задать вопрос
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));
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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