您好我刚开始学习JavaScript。我正在http://www.codecademy.com/进行练习。你可以在下面阅读:
FizzBuzz是一款儿童游戏,你的数量从1到20.很简单,对吧?
这里有一个问题:不是说可以被3整除的数字,而是说“Fizz”。而不是说可以被5整除的数字,而是说“Buzz”。对于可被3和5整除的数字,请说“FizzBuzz”。
“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")
}
任何帮助都会很棒。
答案 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不是很熟悉所以它可能是一个不同的运算符,如果是这种情况,%
表示模数。它返回除以数字的余数。所以在你的情况下,假设i
是3
。然后i / 3 == 1
,但i % 3 == 0
。如果i
为6
,i / 3 == 2
,但i % 3 == 0
仍为。{/ p>