JavaScript 中的 Fizzbuzz 程序

17 Mar 2025 | 4 分钟阅读

在本文中,我们将理解 JavaScript 中的 FizzBuzz 程序。首先让我们理解一下什么是“FizzBuzz”。

FizzBuzz

FizzBuzz,一般而言,是一个给孩子们的文字游戏,通过它他们可以学习整除数字。在这个游戏中,参与者围成一圈,然后从 1 数到 100。当数字能被 3 整除时,玩家必须用 Fizz 替换该数字;当数字能被 5 整除时,玩家必须用 Buzz 替换该数字;但当数字能被 3 和 5 同时整除时,玩家必须用 FizzBuzz 替换该数字。

编程世界中的 FizzBuzz

在编程世界中,FizzBuzz 是一项编程挑战,在求职面试中提出,以检查候选人是否能编写程序或调试程序。

FizzBuzz 是由 Imran Ghory 于 17 年前(2007 年)创建的。FizzBuzz 最初是一个游戏,Imran Ghory 从中获得灵感并创建了编程面试题。创建 FizzBuzz 的目的是测试程序员解决微小问题的能力。

如果候选人的编码技能非常出色,那么解决 FizzBuzz 问题将非常容易,但如果候选人是新手程序员,那么他们解决 FizzBuzz 问题可能会很有挑战性。

有各种方法可以编写 FizzBuzz 程序。我们可以使用各种编程语言编写 FizzBuzz 程序,例如 JavaScript、Python、Java 等。

但在本文中,我们将通过 JavaScript 来理解 FizzBuzz 程序。

FizzBuzz 程序问题

  • 创建一个程序,打印从 1 到 50 的数字。
  • 当数字是 3 的倍数时,打印 “Fizz” 来替换该数字。
  • 当数字是 5 的倍数时,打印 “Buzz” 来替换该数字。
  • 当数字是 3 和 5 的倍数时,打印 “FizzBuzz” 来替换该数字。

FizzBuzz 程序流程图

Fizzbuzz program in JavaScript

上面的流程图展示了 FizzBuzz 的工作原理。根据 FizzBuzz 算法,当一个数字满足条件时,程序将打印预期的输出。

我们可以通过两种方式创建 FizzBuzz 程序

  1. 使用“for”循环
  2. 利用递归

我们将理解如何通过这两种方法创建 FizzBuzz 程序。

“for”循环

下面是使用“for”循环构建 FizzBuzz 程序的代码

上述代码的解释

  • 我们首先构造了一个名为 “fizzBuzz” 的函数,并在其中给出了参数 “i”
  • 我们创建了 “for”循环并设置了一个变量 “i”“for”循环从 1 重复到某个数字,即 “50”。它会检查 “if else” 语句并相应地打印输出。
  • “if else” 条件使用 i % 3 == 0 && i % 5 == 0 检查数字是否能被 3 和 5 整除。如果数字能被 3 和 5 整除,则打印 FizzBuzz
  • 如果数字不能被 3 和 5 同时整除,则使用 i % 3 == 0 检查仅被 3 整除的情况。如果数字能被 3 整除,则打印 Fizz
  • 如果数字不能被 3 整除,则使用 i % 5 == 0 检查仅被 5 整除的情况。如果数字能被 5 整除,则打印 Buzz
  • 如果数字不能被 3 整除,也不能被 5 整除,也不能仅被 3 或仅被 5 整除,则打印该数字

输出

在这里,在输出中我们可以看到一个使用“for”循环实现的FizzBuzz 程序

Fizzbuzz program in JavaScript

利用递归

下面是用于通过递归构建 FizzBuzz 程序的代码

上述代码的说明

  • 我们构造了一个名为 “fizzBuzz” 的递归函数,它会不断调用自身,直到达到限制,从而生成 FizzBuzz 值。
  • 定义递归函数后,我们构造了一个从 1 到 30 重复的“for”循环
  • 然后 “if else” 语句根据条件检查数字是否能被 3 和 5 整除,并打印相应的解决方案。

输出

这里是输出,我们可以看到一个通过递归函数辅助构建的FizzBuzz 程序

Fizzbuzz program in JavaScript

结论

在本文中,我们已经学习了JavaScript 中的 FizzBuzz 程序。我们可以通过两种方法在 JavaScript 中制作 FizzBuzz 程序,即使用“for”循环递归方法