logo

Programa FizzBuzz en Java

FizzBuzz es un juego que es popular entre los niños. Al jugar esto, los niños aprenden la división. Ahora el FizzBuzz El juego se ha convertido en una pregunta de programación popular que se hace con frecuencia en programación java entrevistas. En esta sección, aprenderemos cómo crear un Programa FizzBuzz en Java .

Reglas del juego FizzBuzz

Las reglas del juego FizzBuzz son muy sencillas.

  • Decir Efervescencia si el numero es divisible por 3 .
  • Decir Zumbido si el numero es divisible por 5 .
  • Decir FizzBuzz si el numero es divisible por ambos 3 y 5.
  • Devuelve el número sí mismo, si el número es no divisible por 3 y 5.

Nota: En lugar de 3 y 5, también puedes usar diferentes divisores (como 5 y 7, etc.) y cadenas (Fizz y Buzz).

Implementemos las reglas anteriores en un programa Java.

Programa Java FizzBuzz

Hay dos formas de crear un programa FizzBuzz en Java:

  • Usando la declaración else-if
  • Usando Java 8

Usando la declaración else-if

En el siguiente programa, leemos un número entero (n) del usuario que es el límite superior para imprimir Fizz o Buzz o FizzBuzz. El bucle for comienza desde 1 y se ejecuta hasta que se cumpla la condición i.<=n 3 5 becomes false. the else-if statement to check number is multiple of and or not.< p>

FizzBuzzExample1.java

 import java.util.Scanner; public class FizzBuzzExample1 { public static void main(String args[]) { //constructor of the scanner class Scanner sc = new Scanner(System.in); System.out.print(&apos;Enter the number: &apos;); //reads an integer from the user int n = sc.nextInt(); System.out.println(&apos;The Fizz, Buzz, and FizzBuzz numbers are: &apos;); //for loop executes until the condition i<=n 3 5 becomes false for (int i="1;" <="n;" i++) { returns true if both the conditions return (i%3="=0" && i%5="=0)" prints number is multiple of and system.out.print('fizzbuzz'); } executes condition else system.out.print('fizz'); (i%5="=0)" system.out.print('buzz'); itself not divisible by system.out.print(i); space system.out.print(','+' '); close scanner sc.close(); pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/88/fizzbuzz-program-java.webp" alt="FizzBuzz Program in Java"> <h3>Using Java 8</h3> <p>Java 8 provides the <strong>IntStream</strong> interface. We have used the following two methods of the IntStream interface.</p> <p> <strong>rangeClosed() Method:</strong> It is the static method of the IntStream interface. It returns a sequential IntStream for the specified range.</p> <p> <strong>Syntax:</strong> </p> <pre> static IntStream rangeClosed(int startInclusive, int endInclusive) </pre> <p>The method parses two parameters:</p> <ul> <tr><td>startInclusive:</td> It is the initial value. </tr><tr><td>endInclusive:</td> The inclusive upper bound. </tr></ul> <h3>Using mapToObj() Method</h3> <p>The method performs an intermediate operation and returns an object-valued Stream consisting of the results of applying the given function to the elements of this stream.</p> <p> <strong>Syntax:</strong> </p> <pre> Stream mapToObj(IntFunction mapper) </pre> <p>The method parses a parameter <strong>mapper</strong> (of element type of new stream). It returns the new stream.</p> <p> <strong>FizzBuzzExample2.java</strong> </p> <pre> import java.util.*; import java.util.stream.IntStream; public class FizzBuzzExample2 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.print(&apos;Enter the number:&apos;); //reads an integer from the user int num = sc.nextInt(); //the rangeClosed() method returns a sequential IntStream for the specified range of int elements //for-each iterate over the Stream and prints the elements IntStream.rangeClosed(1, num).mapToObj(i-&gt;i%3==0?(i%5==0? &apos;FizzBuzz &apos;:&apos;Fizz &apos;):(i%5==0? &apos;Buzz &apos;: i+&apos; &apos;)).forEach(System.out::print); //close the Scanner sc.close(); } } </pre> <p> <strong>Output:</strong> </p> <pre> Enter the number: 40 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz </pre> <p>Note that, in the above program the logic for FizzBuzz is adjusted into one line by using the <a href="/ternary-operator-java">ternary operator</a> . It reduces the line of code. We have printed <strong>Fizz</strong> if the number is multiple of 3, prints <strong>Buzz</strong> if the number is multiple of 5, prints <strong>FizzBuzz</strong> if the number is multiple of 3 and 5, else prints the <strong>number</strong> itself.</p> <hr></=n>

El método analiza dos parámetros:

    inicioInclusivo:Es el valor inicial.incluido:El límite superior inclusivo.

Usando el método mapToObj()

El método realiza una operación intermedia y devuelve un Stream valorado por un objeto que consta de los resultados de aplicar la función dada a los elementos de este flujo.

Sintaxis:

 Stream mapToObj(IntFunction mapper) 

El método analiza un parámetro. mapeador (del tipo de elemento de nueva secuencia). Devuelve la nueva secuencia.

FizzBuzzExample2.java

 import java.util.*; import java.util.stream.IntStream; public class FizzBuzzExample2 { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.print(&apos;Enter the number:&apos;); //reads an integer from the user int num = sc.nextInt(); //the rangeClosed() method returns a sequential IntStream for the specified range of int elements //for-each iterate over the Stream and prints the elements IntStream.rangeClosed(1, num).mapToObj(i-&gt;i%3==0?(i%5==0? &apos;FizzBuzz &apos;:&apos;Fizz &apos;):(i%5==0? &apos;Buzz &apos;: i+&apos; &apos;)).forEach(System.out::print); //close the Scanner sc.close(); } } 

Producción:

 Enter the number: 40 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 

Tenga en cuenta que, en el programa anterior, la lógica de FizzBuzz se ajusta en una línea utilizando el operador ternario . Reduce la línea de código. hemos impreso Efervescencia si el número es múltiplo de 3, se imprime Zumbido si el número es múltiplo de 5, se imprime FizzBuzz si el número es múltiplo de 3 y 5, de lo contrario imprime el número sí mismo.