在Javascript中的循环内执行if / else条件

时间:2013-12-07 13:19:14

标签: javascript

我需要在JS'for'循环中执行if / else条件。具体来说,这就是我被告知要做的事情:http://i.imgur.com/lA1mRGp.jpg

这是我的代码

var numSheep = 4;
var monthsToPrint = 12;
for (var monthNumber = 1; monthNumber <= monthsToPrint; monthNumber++) {
  if (numSheep < 10000) {
    numSheep *= 4;
    console.log("There will be " + numSheep + " sheep after " + monthNumber + " month(s)!");
  } else {
    numSheep *= 4;
    var number = numSheep / 2;
    var newNum = numSheep - number;
    console.log("Removing " + number + " sheep from the population. Phew!");
    console.log("There will be " + newNum + " sheep after " + monthNumber + " month(s)!");
  }
}

每当我提交此代码时,我都会从codeschool收到此错误,“您正在调用console.log正确的次数,但没有记录正确的消息。当有更多时,您是否正在将numSheep潜水2超过10000。“

P.S:这是挑战没有。 Codechool上的JavaScript Road Trip Part 2的第5部分。如果您需要登录codeschool并亲自查看,此链接应提供48小时访问权限:http://go.codeschool.com/eO1V6A

1 个答案:

答案 0 :(得分:2)

如果我把一切都搞定了

  • 首先,@ eosterberg在评论中提到文字说“任何一个月的人口都超过10,000”
  • 其次你需要节省你剩下的绵羊数量; numSheep = numSheep/2,你送走的羊现在是相同的,但是把它存放在一个变量中,发送给了嘘。
  • 第三,文字说; “然而,居住人口增长的速度将保持不变(x4)”这意味着只保持增长的人口(至少我们知道)=&gt;你应该在计算之后和numSheep *= 4;
  • 之前放置console.log

实际代码看起来像;

var numSheep = 4;
var monthsToPrint = 12;
for (var monthNumber = 1; monthNumber <= monthsToPrint; monthNumber++) {
  if (numSheep <= 10000) {
    numSheep *= 4;
    console.log("There will be " + numSheep + " sheep after " + monthNumber + " month(s)!");
  } else {
    numSheep = numSheep / 2;
    var sentSheep = numSheep;
    numSheep *= 4;
    console.log("Removing " + sentSheep + " sheep from the population. Phew!");
    console.log("There will be " + numSheep + " sheep after " + monthNumber + " month(s)!");
  }
}