почему цикл for не работает? - PullRequest
0 голосов
/ 14 июня 2019

Я должен создать функцию, которая будет продолжать удваивать первый аргумент, пока он не станет больше или равен 2-му аргументу. Каждый раз, когда он удваивается, я добавляю 20 к счетчику.

Однако по какой-то причине он не добавляет 20 к счетчику, поскольку он всегда возвращает 0 и не печатает console.log, который я включил для каждого цикла, что заставляет меня думать, что цикл не выполняется.

Почему не работает цикл и что я делаю не так?

function bacteriaTime(currentNum, targetNum) {
  let counter = 0
  for (let i = currentNum; i >= targetNum; i *= 2) {
    counter += 20;
    console.log('bacteria count is ' + i + ' and ' + counter + ' have passed.')
  }
  return counter;
  console.log(counter);
}

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Возможно, вы захотите проверить, не выполнено ли ваше условие, и поэтому код вернулся. Также ваше состояние задом наперед. Должно быть: for (let i = currentNum; i <= targetNum; i *= 2) {

0 голосов
/ 14 июня 2019

Похоже, вы перепутали свое сравнение. В вашем цикле for у вас было i >= targetNum, которое с вашими входами почти всегда было бы false. Просто переключите оператора на <=, как показано ниже, и все будет хорошо. Это будет означать, что i меньше targetNum.

function bacteriaTime (currentNum,targetNum){
    let counter = 0
    for (let i = currentNum; i <= targetNum; i *= 2){
        counter += 20;
        console.log ('bacteria count is ' + i + ' and ' + counter+ ' have passed.')
        }
    console.log(counter);
    return counter;
}

Надеюсь, что это работает. Вероятно, это было простое смешение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...