# Java 中的 FizzBu​​zz 解决方案

> 原文： [https://howtodoinjava.com/puzzles/fizzbuzz-solution-java/](https://howtodoinjava.com/puzzles/fizzbuzz-solution-java/)

**FizzBu​​zz** 是一款有趣的游戏，主要在小学阶段玩。 规则很简单：轮到您时，请说出下一个号码。 但是，如果该数字是 5 的倍数，则应改为说“嘶嘶声”（最好带有法国口音）。 如果数字是 7 的倍数，则应说“嗡嗡声”。 而且，如果两者均是倍数，则应说“ fizzbuzz”。 如果您搞砸了，就出局了，比赛在没有您的情况下继续进行。

请注意，可以使用不同的除数来代替 5 和 7，也可以使用不同的除数，并且不同的单词或手势可以代替“嘶嘶声”或“嗡嗡声”。 [[参考](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);
	}
}

```

学习愉快！