1
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);
}

有人可以解释当数字可以被 3 和 5 整除时,“Fizz”和“Buzz”之前的 += 运算符如何在 FizzBu​​zz 的串联中发挥作用?

我的初始代码如下,产生了相同的结果:

 for (var number = 1; number <= 100; number++) 

 if (number % 3 == 0 && number % 5 == 0) {
    number == console.log("FizzBuzz");
 }

 else if (number % 3 == 0) {
    number == console.log("Fizz");
 }

 else if (number % 5 == 0) {
    number == console.log("Buzz");
 }

 else {
    console.log(number);
 }
4

2 回答 2

2
output += "Fizz";

只是简写版本

output = output + "Fizz";

它将与 中的值连接outputFizz创建一个新字符串并将其存储回output.

重要的是,它创建了一个新的 String 对象,因为 String 对象是不可变的。

按照逻辑,如果数字能被 整除3output则将变为Fizz,因为它已经为空。如果该数也能被 整除5output则将变为FizzBuzz( Fizz + Buzz)。

于 2014-12-22T04:55:15.263 回答
0
output += "Fizz";

是简写

output = output + "Fizz";

保留变量output允许“Fizz”和“Buzz”都适用于循环迭代中的数字并且需要组合的情况。 output每个循环都会重置。

于 2014-12-22T04:54:59.327 回答