Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这个if/else代码有什么错误?_Javascript - Fatal编程技术网

Javascript 这个if/else代码有什么错误?

Javascript 这个if/else代码有什么错误?,javascript,Javascript,我对这些说明有什么问题? 打印出1-20之间的数字。 规则: 对于可被3整除的数字,请打印“Fizz”。 对于可被5整除的数字,请打印“Buzz”。 对于同时被3和5整除的数字,请在控制台中打印“FizzBuzz”。 否则,只需打印出号码即可 for (var i = 1; i < 21; i++) { if (i % 3) { console.log("Fizz"); } if (i % 5) { console.log("Buzz

我对这些说明有什么问题? 打印出1-20之间的数字。 规则: 对于可被3整除的数字,请打印“Fizz”。 对于可被5整除的数字,请打印“Buzz”。 对于同时被3和5整除的数字,请在控制台中打印“FizzBuzz”。 否则,只需打印出号码即可

for (var i = 1; i < 21; i++) {
    if (i % 3) {
        console.log("Fizz");
    }
    if (i % 5) {
        console.log("Buzz");
    }
    if ((i % 3) && (i % 5)) {
        console.log("FizzBuzz");
    } else {
        console.log(i);
    }
}
for(变量i=1;i<21;i++){
如果(i%3){
控制台日志(“嘶嘶声”);
}
如果(i%5){
控制台日志(“嗡嗡声”);
}
如果((i%3)和&(i%5)){
console.log(“FizzBuzz”);
}否则{
控制台日志(i);
}
}

运算符返回值不是布尔值,而是除法运算的剩余部分。因此,您需要检查余数是否为0

for (var i = 1; i < 21; i++) {
    if ((i % 3) == 0) {
        console.log("Fizz");
    }
    if ((i % 5) == 0) {
        console.log("Buzz");
    }
    if (((i % 3) == 0) && ((i % 5) == 0)) {
        console.log("FizzBuzz");
    } else {
        console.log(i);
    }
}
for(变量i=1;i<21;i++){
如果((i%3)==0){
控制台日志(“嘶嘶声”);
}
如果((i%5)==0){
控制台日志(“嗡嗡声”);
}
如果((i%3)==0)和((i%5)==0)){
console.log(“FizzBuzz”);
}否则{
控制台日志(i);
}
}

您似乎正在尝试这样做:

for (var i = 1; i < 21; i++) {
    if ((i % 3) === 0 && (i % 5) === 0) {
        console.log("FizzBuzz");
    } 
    else if (i % 3 === 0) {
        console.log("Fizz");
    }
    else if (i % 5 === 0) {
        console.log("Buzz");
    }
    else {
        console.log(i);
    }
}

否则,对于数字15,%运算符将返回余数,因此如果我们这样做:

9 % 3
结果是0-因为3是9的平方根…您的if条件正在检查非零结果

你应该做:

if (! (i % 3))
for ( var i =1 ; i < 21 ; i++ ) {  
  if(i%3==0){
    console.log("Fizz");
    }
  if(i%5==0){
    console.log("Buzz");
  }
  if((i%3==0) && (i%5==0)){
    console.log("FizzBuzz");
  } else {
    console.log(i);
  }
}
检查是否返回0


也可以考虑使用SME <代码>否则,如果在代码中正确使用嵌套,则代码,你就可以了。

< P>当代码>编号3=0=0/代码>时,可将数字整除。此外,您需要了解
else if
,并考虑条件的顺序。这就是你解决这个问题所需要的


仅仅向您展示解决方案并不能帮助您学习编程。

您没有检查数字是否可以被3或5整除。你在检查这是不是真的

这就是你应该做的:

if (! (i % 3))
for ( var i =1 ; i < 21 ; i++ ) {  
  if(i%3==0){
    console.log("Fizz");
    }
  if(i%5==0){
    console.log("Buzz");
  }
  if((i%3==0) && (i%5==0)){
    console.log("FizzBuzz");
  } else {
    console.log(i);
  }
}
(变量i=1;i<21;i++)的

如果(i%3==0){
控制台日志(“嘶嘶声”);
}
如果(i%5==0){
控制台日志(“嗡嗡声”);
}
如果((i%3==0)和&(i%5==0)){
console.log(“FizzBuzz”);
}否则{
控制台日志(i);
}
}

mod函数“%”返回余数。如果没有余数,则是一个干净的除法。因此,您希望确保结果为0

i%x
返回
i/x
的剩余部分,因此需要对照
==0
进行检查

此外,您应该首先检查
i%3==0&&i%5==0
,如果
,则使用
else,否则所有语句都将一直执行,无论前面的语句是否为真

for(变量i=1;i<21;i++){
如果((i%3==0)和&(i%5==0)){
console.log(“FizzBuzz”);
}如果(i%3==0),则为else{
控制台日志(“嘶嘶声”);
}else如果(i%5==0){
控制台日志(“嗡嗡声”);
}否则{
控制台日志(i);
}

}
你认为
i%3
做什么?尝试使用else if而不是just if。否则,嵌套是错误的。好吧,无论如何,它运行时没有错误。所以,如果它没有达到你的预期,你需要更仔细地看。这是家庭作业吗?当然是家庭作业。像这样的东西除了简单的解决问题的练习外,没有其他作用。这就是为什么有4个非常相似的答案都是正确的,但略有不同。如果我给你的程序编号15,它会打印什么?它会打印嘶嘶声、嗡嗡声和嘶嘶声。从逻辑上讲,这就是它应该打印的内容。我明白你的意思了。我在修改他的密码。但我没有修正所有的逻辑。