我正在尝试做一些简单的测试来帮助进一步了解我的 javascript 知识(这很新鲜)。目标 1 是打印 1-100 不能被 5 或 3 整除的数字。
我尝试了以下方法:
for (var i = 1; i <= 100; i ++)
{
if (i%3 !== 0 || i%5 !== 0){
console.log(i);
}
}
这记录了 1-100 的每个数字,我不知道为什么。可能是这里最简单的问题,但它让我很头疼!
我正在尝试做一些简单的测试来帮助进一步了解我的 javascript 知识(这很新鲜)。目标 1 是打印 1-100 不能被 5 或 3 整除的数字。
我尝试了以下方法:
for (var i = 1; i <= 100; i ++)
{
if (i%3 !== 0 || i%5 !== 0){
console.log(i);
}
}
这记录了 1-100 的每个数字,我不知道为什么。可能是这里最简单的问题,但它让我很头疼!
我想你的意思是&&
,不是||
。使用||
,您基本上是在测试该数字是否不能被 3 或 5 整除 - 只有当一个数字可以被两者整除时,您才会拒绝它(换句话说,是 15 的倍数)。
FizzBuzz 的典型答案是:
if( i%3 == 0 && i%5 == 0) FizzBuzz
elseif( i % 3 == 0) Fizz
elseif( i % 5 == 0) Buzz
else number
因此,要直接获取您需要为i%3==0
假和i%5==0
为假的数字。因此,你想要if( i%3 !== 0 && i%5 !== 0)
我攻击这个的方法和 Niet the Dark Absol 一样:
for (var n = 1; n <= 100; n++) {
if (n % 3 == 0 && n % 5 == 0)
console.log("FizzBuzz");
else if (n % 3 == 0)
console.log("Fizz");
else if (n % 5 == 0)
console.log("Buzz");
else
console.log(n);
}
但是,您也可以这样做:
for (var n = 1; n <= 100; n++) {
var output = "";
if (n % 3 == 0)
output += "Fizz";
if (n % 5 == 0)
output += "Buzz";
console.log(output || n);
}
对我来说,学习 JavaScript(或任何语言)最困难的部分之一是理解解决方案可以通过多种方式实现。我更喜欢第一个示例,但继续思考并查看其他选项总是好的。