2016-09-17 93 views
-7
for(var i = 1; i <= 20; i++){ 
    switch (i) { 
     case 3: 
     case 6: 
     case 9: 
     case 12: 
     case 18: 
      console.log("Fizz"); 
      break; 

     case 5: 
     case 10: 
     case 20: 
      console.log("Buzz"); 
      break; 

     case 15: 
      console.log("FizzBuzz"); 
      break; 

     default: 
     console.log(i); 
    } 
} 

我应该打印1-20的数字。我该如何改进此JavaScript代码?

这些是条件。

一个数是否为被3整除,然后我需要打印“嘶嘶声”

如果一个数字是由5整除,然后我需要打印“嗡嗡”

一个数是否为整除3和5,然后我需要打印“FizzBu​​zz”。

我想出了上述代码,但我认为它可以改进。

+1

可以使用模运算符('%')和如果语句更干净地做到这一点(一个无限可扩展的,即你的代码不会工作,如果你改变20,比如说100)。 – Frxstrem

+0

您只需要2条if()'语句来处理这些条件并连接一个字符串 – charlietfl

回答

0

可以使用模运算符(%),这将有助于使你的代码面向未来,应该在20需要改变,以200等

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