Программа FizzBuzz на Java

1. Что такое FizzBuzz?

FizzBuzz — это веселая игра, в которую в основном играют в начальной школе. Правила просты:

Когда подходит наша очередь, мы произносим следующее число(желательно с французским акцентом). Однако:

  • Если это число кратно пяти, мы говорим слово «fizz».
  • Если число кратно семи, мы говорим «жужжит».
  • Если это кратно обоим, мы говорим «fizzbuzz».

Если мы ошибёмся, мы выбываем, и игра продолжается без нас.

Программа FizzBuzz на Java0

Обратите внимание, что вместо или в дополнение к 5 и 7 можно использовать разные делители, а также разные слова или жесты можно заменить на «fizz» или «buzz». [ Ref ]

Давайте научимся писать программу для моделирования этой игры на Java.

2. Программа FizzBuzz, использующая Java Streams

Давайте разработаем решение с использованием Java 8 Stream API. Следующая программа использует класс IntStream, который используется для генерации потока целых чисел в диапазоне.

Мы используем тернарный оператор для последовательной проверки каждого сгенерированного числа n и проверяем, делится ли число на 7 или 5.

int end = 100;IntStream.rangeClosed(1, end).mapToObj(i -> i % 5 == 0 ?(i % 7 == 0 ? "FizzBuzz" : "Fizz") :(i % 7 == 0 ? "Buzz" : i)).forEach(System.out::println);

Вывод программы:

1234Fizz6Buzz......34FizzBuzz......

3. Программа FizzBuzz с использованием цикла For

Если вы все еще не используете Java 8 или вас просят написать программу с использованием циклов, то используйте следующую программу, которая заменяет поток циклом, а тернарный оператор — операторами if-else.

 int конец = 100;для(int i = 1; i <= конец; i++) {если(((я % 5) == 0) &&((я % 7) == 0)){System.out.println("fizzbuzz");} иначе если((i % 5) == 0){System.out.println("fizz");} иначе если((i % 7) == 0){System.out.println("жужжит");} еще {System.out.println(i);}}

Вывод программы аналогичен предыдущему решению.

Исходный код на Github

Прокрутить вверх