我应该创建一个函数,该函数将继续使第一个参数加倍,直到它大于或等于第二个参数。每次翻倍,我都会在计数器上加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);
}
答案 0 :(得分:1)
您可能想检查您的条件是否尚未满足,因此,代码已返回。另外,您的情况也很落后。应该是:for (let i = currentNum; i <= targetNum; i *= 2) {
答案 1 :(得分:0)
似乎您混淆了比较。在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;
}
希望有效。可能只是一个简单的混淆。