This question already has answers here:
FizBuzz program: how to make the output correct?
                            
                                (4个答案)
                            
                    
                5年前关闭。
        

    


我正在学习js
您能告诉我代码是否适合以下任务...
我可以打印foo和bar
但无法打印foobar


http://jsfiddle.net/1u1o2es7/

// Looping from 1 to 100 print out the following
// If the number is divisible by 3, log X foo
// if the number is divisible by 5, log X bar
// If the number is divisible by 15, log X foobar
// Only one output per number
// Expected output:
//
// 1
// 2
// 3 foo
// 4
// 5 bar
// 6 foo
// ...
// 15 foobar
// ...
// 100 bar

for(i=1; i<=100; i++){
    console.log(i);
    //var str = "";
    if(i%3 == 0) {
        //str = "foo";
        console.log("foo");
    }
    else if(i%5 == 0) {
        console.log("bar");
    }
    else if(i%3 == 0 && i%5 == 0) {
        console.log("foobar");
    }
}

最佳答案

您在15时仅获得“ foo”的原因是因为if (15%3 == 0)的计算结果为true,并且您没有遇到任何其他情况。

如果有的话,将else if(i%3 == 0 && i%5 == 0)移到顶部。

for(i=1; i<=100; i++){
    console.log(i);

    if(i%3 == 0 && i%5 == 0) {

        console.log("foobar");
    }
    else if(i%5 == 0) {
        console.log("bar");
    }
    else if(i%3 == 0) {
        console.log("foo");
    }
}


那正是你想要的。

10-02 12:37