¿Cuál es el problema de FizzBuzz en Java?

¿Cuál es el problema de FizzBuzz en Java?
En la programación básica de Java, puede haber casos en los que uno quiere mejorar la programación y las habilidades lógicas. Más específicamente, permitiendo que los novatos creen un algoritmo algo difícil o hagan lógica. Además, para recuperar algunos valores filtrados según el requisito. En tales casos, el "Fizzbuzz"El problema en Java ayuda a los principiantes a mejorar sus habilidades de codificación.

Este artículo demostrará las reglas y la implementación del problema de "FizzBuzz" en Java.

¿Cuál es el problema de "FizzBuzz" en Java??

El "FizzbuzzEl problema corresponde a un juego en la vida real que juega un grupo de personas que tienen las siguientes reglas:

  • La secuencia de turnos se decide antes de comenzar el juego.
  • El primer jugador inicia especificando cualquier número, yo.mi., "1".
  • El siguiente jugador dice el siguiente número, y así sucesivamente.
  • La parte difícil es que la palabra "Efervescencia"Se dice en lugar de que el número sea múltiple de"3".
  • Del mismo modo, la palabra "Zumbido"Se dice si (número) es un múltiplo de"5".
  • Sin embargo, si el número es un múltiplo de ambos números "3" y "5", la palabra "Fizzbuzz"Se usa en su lugar.

Nota: Las reglas para los números especificados anteriormente pueden cambiar, yo.mi., "11" y "13" etc.

Cómo implementar el problema de "FizzBuzz" en Java?

Para implementar el "Fizzbuzz"Problema en Java, aplique los siguientes enfoques:

  • "si/else" Declaración.
  • "Ternario"Operador.
  • "maptoobj ()" y "rangeclosed ()" Métodos.

Los siguientes enfoques aplicarán un cheque sobre los números "3" y "5"E invoca la palabra correspondiente.

Enfoque 1: Implementación del problema de "FizzBuzz" en Java usando la instrucción "if/else"

El "si/else"Verifica la declaración para una condición particular e invoca la declaración correspondiente. Esta declaración se puede aplicar para aplicar un control sobre la ocurrencia de los números de acuerdo con las reglas.

Ejemplo

Vamos a ver el ejemplo proporcionado a continuación:

clase pública FizzBuzz
public static void main (string args [])
para (int i = 1; i <= 20; i++)
if (i % 3 == 0 && i % 5 == 0)
Sistema.afuera.println ("FizzBuzz");

else if (i % 3 == 0)
Sistema.afuera.println ("Fizz");

else if (i % 5 == 0)
Sistema.afuera.println ("buzz");

demás
Sistema.afuera.println (i);

De acuerdo con el código anterior, aplique los siguientes pasos:

  • En primer lugar, aplique un "para"Luce para iterar a lo largo de los enteros hasta"20".
  • Dentro de este rango, verifique que los números sean múltiples de ambos "3" y "5"Al verificar si son completamente divisibles y no queda ningún resto.
  • Sobre la condición satisfecha, registre la palabra "Fizzbuzz"De acuerdo con las reglas.
  • Del mismo modo, al aparecer de los números múltiples de "3", Registra la palabra"Efervescencia".
  • Del mismo modo, muestre la palabra "Zumbido"Si el número es un múltiplo de"5".
  • En el "demás"Condición, el número en sí se mostrará en la consola.

Producción

En esta salida, se puede observar que las palabras correspondientes reemplazan los números que son múltiplos de "3","5" o ambos.

Enfoque 2: Implementación del problema de "FizzBuzz" en Java utilizando el "Operador ternario"

El "TernarioEl operador también verifica una condición particular e invoca el bloque correspondiente en función de las condiciones satisfechas o insatisfechas. Este operador se puede utilizar combinado con el "valor de()Método para verificar también la condición de divisibilidad y registrar el resultado correspondiente como una cadena.

Sintaxis

(condición) ? (Invocar si es verdadero): (Invocar si False);

Ejemplo

Pasemos el siguiente ejemplo para comprender el concepto declarado:

clase pública FizzBuzz2
public static void main (string args [])
para (int i = 1; i <= 20; i++)
Salida de cadena = (i % 3 == 0 ? (i % 5 == 0 ? "FizzBuzz": "Fizz"):
(i % 5 == 0 ? "Buzz": cadena.valor de (i)));
Sistema.afuera.println (salida);

Según este fragmento de código, realice los siguientes pasos:

  • Del mismo modo, incluya un "para"Luce para iterar a lo largo de los enteros hasta el límite especificado.
  • Dentro de este rango, verifique la condición de modo que si el número es un múltiplo de "3", Invoca la condición anterior después"?". Si esta condición invocada (múltiplo de 5) también se satisface, registre la palabra "Fizzbuzz".
  • En el caso de la primera condición satisfecha, devuelva la palabra "Efervescencia".
  • De lo contrario, acceda a este último bloque en la siguiente línea. Aquí, de manera similar, verifique la primera condición satisfecha y devuelva la palabra "Zumbido".
  • En el otro caso, registre el valor en sí como una cadena a través de la asociación "valor de()" método.
  • Finalmente, registre el resultado correspondiente en cada iteración.

Producción

Antes de continuar con el siguiente enfoque, asegúrese de incluir los siguientes paquetes para habilitar la entrada del usuario y manipular "En t"Valores, respectivamente.

importar java.utilizar.Escáner;
importar java.utilizar.arroyo.Intstream;

Enfoque 3: Implementación del problema de "FizzBuzz" en Java utilizando los métodos "maptoobj ()" y "rangeclosed ()

El "maptoobj ()"Método del"Intstream"La interfaz se utiliza para devolver una secuencia de objetos y el"rangeclosed ()El método "devuelve un intstream ordenado secuencial. Estos métodos se pueden aplicar en combinación con el "TernarioEl operador "para devolver la palabra correspondiente en lugar del entero dentro del rango de entrada de usuario.

Sintaxis

static intstream rangeclosed (int primero, int último)

En esta sintaxis:

  • "primero"Se refiere al valor, incluido el primer valor.
  • "último"Señala el último valor.

Ejemplo

Considere el ejemplo declarado a continuación:

clase pública FizzBuzz3
public static void main (string args [])
Entrada del escáner = nuevo escáner (sistema.en);
Sistema.afuera.imprimir ("Ingrese el límite final: \ n");
int inInteger = entrada.nextInt ();
Intstream.rangeclosed (1, inintenger).maptoobj (i-> i%3 == 0?(i%5 == 0? "FizzBuzz": "Fizz") :( i%5 == 0? "Buzz": i+"").foreach (sistema.out :: imprimir);
aporte.cerca();

En las líneas de código anteriores, realice los siguientes pasos:

  • En primer lugar, cree un "Escáner"Objeto a través del"nuevo"Palabra clave y la"Escáner()"Constructor, respectivamente.
  • El "Sistema.enEl parámetro lee la entrada.
  • Después de eso, asocie el "nextInt ()Método para obtener la entrada como entero.
  • Ahora, asocie el "rangeclosed ()"Método con el"Intstream"Interfaz y especifique el rango refiriéndose al valor de entrada de usuario.
  • Además, aplique el "maptoobj ()Método "junto con el operador ternario para devolver una secuencia de valor de objeto.
  • Nota: La funcionalidad realizada en el operador ternario es idéntica al enfoque anterior.
  • Por último, aplique el "para cada()Método "para mostrar todos los valores y cerrar el escáner a través del"cerca()" método.

Producción

Este resultado implica que el secuencial "Intstream"Se devuelve de acuerdo con el rango de entrada.

Conclusión

Para implementar el "Fizzbuzz"Problema en Java, aplique el"si/else"Declaración, la"Ternario"Operador, o el"maptoobj ()" y "rangeclosed ()" métodos. Estos enfoques aplican un cheque en el rango de enteros especificado o de entrada de usuario y devuelven la palabra correspondiente de acuerdo con el juego, i.mi., Reglas de "FizzBuzz". Este blog se guía para discutir el problema de "FizzBuzz" en Java.