在IF语句中使用数学函数

时间:2012-02-04 19:23:24

标签: javascript

您好我刚开始学习JavaScript。我正在http://www.codecademy.com/进行练习。你可以在下面阅读:

FizzBu​​zz是一款儿童游戏,你的数量从1到20.很简单,对吧?

这里有一个问题:不是说可以被3整除的数字,而是说“Fizz”。而不是说可以被5整除的数字,而是说“Buzz”。对于可被3和5整除的数字,请说“FizzBu​​zz”。

“1,2,Fizz,4,Buzz”......等等

让我们首先使用console.log打印出1和20中的所有数字。

但是不要按顺序输入数字 - 找到更棒的方式!

我可以使用for循环来打印数字,但现在我不知道如何用字符串替换数字。

我想做一个IF声明,如果“如果我除以3是零,那么打印Fizz”,但我不知道该怎么做。看看我到目前为止所做的事情:

var i;
for (i = 0; i <=20; i++) {
    console.log(i);
}
if (i / 3 = 0) {
    console.log("Fizz")
}

任何帮助都会很棒。

5 个答案:

答案 0 :(得分:3)

您需要使用模数运算符测试余数。

if (i % 3 === 0) {

模数运算符在将左操作数除右后返回余数。

12 % 3;  // 0
13 % 3;  // 1
14 % 3;  // 2
15 % 3;  // 0

答案 1 :(得分:2)

使用==(或===)运算符进行比较,而不是=。后者用于将值赋值给变量或对象属性。

要做if陈述,那么,你写下这个:

if (i / 3 === 0) {
   // ...
}

我使用了===,因为通常是正确的; ==有一些奇怪的语义,在你掌握JavaScript之前可能会让人感到困惑。

正如@kennebec在评论中指出的那样,你可能想再次考虑你的逻辑。也许你想检查数字是否可分割三。在这种情况下,您需要使用模数运算符:

if (i % 3 === 0) {
  // i is divisible by 3
}

答案 2 :(得分:1)

var i;
for(i=1; i<=20; i++) {
    console.log(i);
    if(i / 3 === 0) {
        console.log("Fizz");    
    }
    else if(i / 5 === 0) {
        console.log("Buzz");
    }
}

希望这可以帮助您在javascript中进行练习

答案 3 :(得分:1)

这有效:

for (i=1; i<21; i++) {

    if(i%3 === 0 && i%5 !== 0) {
        console.log("Fizz");
    } 

    else if (i%5 === 0 && i%3 !== 0) {
        console.log("Buzz");
    }

    else if (i%5 === 0 && !i%3 === 0) {
        console.log("FizzBuzz");
    }
    else {
       console.log(i); 
    }
}

答案 4 :(得分:0)

实际上你会想要更像(i % 3 == 0)的东西。

我对JavaScript不是很熟悉所以它可能是一个不同的运算符,如果是这种情况,%表示模数。它返回除以数字的余数。所以在你的情况下,假设i3。然后i / 3 == 1,但i % 3 == 0。如果i6i / 3 == 2,但i % 3 == 0仍为。{/ p>