ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java 中的 FizzBu​​zz 解决方案 > 原文: [https://howtodoinjava.com/puzzles/fizzbuzz-solution-java/](https://howtodoinjava.com/puzzles/fizzbuzz-solution-java/) **FizzBu​​zz** 是一款有趣的游戏,主要在小学阶段玩。 规则很简单:轮到您时,请说出下一个号码。 但是,如果该数字是 5 的倍数,则应改为说“fizz”(最好带有法国口音)。 如果数字是 7 的倍数,则应说“buzz”。 而且,如果两者均是倍数,则应说“fizzbuzz”。 如果您搞砸了,就出局了,比赛在没有您的情况下继续进行。 请注意,可以使用不同的除数来代替 5 和 7,也可以使用不同的除数,并且不同的单词或手势可以代替“fizz”或“buzz”([参考](https://en.wikipedia.org/wiki/Fizz_buzz))。 让我们学习编写一个程序来用 Java 模拟这个游戏。 ## 在 Java8 中解决 FizzBu​​zz 使用最新的 Java 版本 8,让我们使用 Java8 构造设计解决方案。 ```java IntStream.rangeClosed(1, 100) .mapToObj(i -> i % 5 == 0 ? (i % 7 == 0 ? "FizzBuzz" : "Fizz") : (i % 7 == 0 ? "Buzz" : i)) .forEach(System.out::println); ``` ## 在 Java8 之前解决 FizzBu​​zz 如果您仍未使用 Java8,则此 Fizzbuzz 解决方案将使用基本的`for`循环并遍历数字范围并确定要打印的内容。 ```java for (int i = 1; i <= num; i++) { if (((i % 5) == 0) && ((i % 7) == 0)) // Is it a multiple of 5 & 7? System.out.println("fizzbuzz"); else if ((i % 5) == 0) // Is it a multiple of 5? System.out.println("fizz"); else if ((i % 7) == 0) // Is it a multiple of 7? System.out.println("buzz"); else System.out.println(i); // Not a multiple of 5 or 7 } ``` ## 完整的 FizzBu​​zz 示例代码 两种解决方案都非常容易并且易于说明。 下面给出的是 fizzbuzz 的工作示例源代码。 随意修改和使用代码。 ```java import java.util.stream.IntStream; public class FizzBuzz { public static void main(String[] args) { fizzBuzzBeforeJava8(100); fizzBuzzInJava8(100); } private static void fizzBuzzBeforeJava8(int num) { for (int i = 1; i <= num; i++) { if (((i % 5) == 0) && ((i % 7) == 0)) // Is it a multiple of 5 & 7? System.out.println("fizzbuzz"); else if ((i % 5) == 0) // Is it a multiple of 5? System.out.println("fizz"); else if ((i % 7) == 0) // Is it a multiple of 7? System.out.println("buzz"); else System.out.println(i); // Not a multiple of 5 or 7 } } private static void fizzBuzzInJava8(int num) { IntStream.rangeClosed(1, 100) .mapToObj(i -> i % 5 == 0 ? (i % 7 == 0 ? "FizzBuzz" : "Fizz") : (i % 7 == 0 ? "Buzz" : i)) .forEach(System.out::println); } } ``` 学习愉快!