Qual è il problema di Fizzbuzz in Java

Qual è il problema di Fizzbuzz in Java
Nella programmazione di base Java, ci possono essere casi in cui si desidera migliorare la programmazione e le capacità logiche. Più specificamente, consente ai neofiti di creare un algoritmo un po 'complicato o fare logica. Inoltre, per recuperare alcuni valori filtrati in base al requisito. In tali casi, il "Fizzbuzz"Il problema in Java aiuta i principianti a migliorare le loro capacità di programmazione.

Questo articolo dimostrerà le regole e l'implementazione del problema "Fizzbuzz" in Java.

Qual è il problema "Fizzbuzz" in Java?

IL "Fizzbuzz"Il problema corrisponde a un gioco nella vita reale giocata da un gruppo di persone che hanno le seguenti regole:

  • La sequenza di turni è decisa prima dell'inizio del gioco.
  • Il primo giocatore avvia specificando qualsiasi numero, i.e., "1".
  • Il prossimo giocatore dice il prossimo numero e così via.
  • La parte difficile è che la parola "Fizz"È detto invece che il numero sia multiplo di"3".
  • Allo stesso modo, la parola "BUZZ"Si dice se (numero) è un multiplo di"5".
  • Tuttavia, se il numero è un multiplo di entrambi i numeri "3" E "5", la parola "Fizzbuzz"È invece usato.

Nota: Le regole per i numeri sopra specificati possono cambiare, i.e., "11" E "13" eccetera.

Come implementare il problema "Fizzbuzz" in Java?

Per implementare il "Fizzbuzz"Problema in Java, applica i seguenti approcci:

  • "se altro" Dichiarazione.
  • "Ternario"Operatore.
  • "maptoobj ()" E "rangecluso ()"Metodi.

I seguenti approcci applicheranno un controllo sui numeri "3" E "5"E invoca la parola corrispondente.

Approccio 1: implementazione del problema "Fizzbuzz" in Java usando l'istruzione "if/else"

IL "se altro"Controlla l'istruzione per una condizione particolare e invoca l'istruzione corrispondente. Questa affermazione può essere applicata per applicare un controllo in merito al verificarsi dei numeri in conformità con le regole.

Esempio

Proviamo l'esempio sotto fornito:

Classe pubblica Fizzbuzz
public static void main (string args [])
per (int i = 1; i <= 20; i++)
if (i % 3 == 0 && i % 5 == 0)
Sistema.fuori.println ("fizzbuzz");

else if (i % 3 == 0)
Sistema.fuori.println ("fizz");

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

altro
Sistema.fuori.println (i);

Secondo il codice sopra, applica i seguenti passaggi:

  • In primo luogo, applica un “per"Loop per iterare lungo i numeri interi fino a"20".
  • All'interno di questo intervallo, controlla che i numeri siano multipli di entrambi "3" E "5"Controllando se sono completamente divisibili e nessun resto viene lasciato indietro.
  • Sulla condizione soddisfatta, registrare la parola "Fizzbuzz"In conformità con le regole.
  • Allo stesso modo, al verificarsi dei numeri che sono multipli di "3", Registri la parola"Fizz".
  • Allo stesso modo, mostra la parola "BUZZ"Se il numero è un multiplo di"5".
  • Nel "altro"Condizione, il numero stesso verrà visualizzato sulla console.

Produzione

In questo output, si può osservare che le parole corrispondenti sostituiscono i numeri che sono multipli di "3","5" o entrambi.

Approccio 2: implementazione del problema "Fizzbuzz" in Java usando "Ternary Operator"

IL "Ternario"L'operatore controlla anche una particolare condizione e invoca il blocco corrispondente in base alle condizioni soddisfatte o insoddisfatte. Questo operatore può essere utilizzato combinato con "valore di()"Metodo per verificare allo stesso modo la condizione di divisibilità e registrare il risultato corrispondente come stringa.

Sintassi

(condizione) ? (invoca se vero): (invoca se falso);

Esempio

Passiamo attraverso il seguente esempio per capire il concetto dichiarato:

Classe pubblica Fizzbuzz2
public static void main (string args [])
per (int i = 1; i <= 20; i++)
String output = (i % 3 == 0 ? (I % 5 == 0 ? "Fizzbuzz": "Fizz"):
(I % 5 == 0 ? "Buzz": stringa.valore di (i)));
Sistema.fuori.println (output);

Secondo questo frammento di codice, eseguire i seguenti passaggi:

  • Allo stesso modo, includi un “per"Loop per iterare lungo i numeri interi fino al limite specificato.
  • All'interno di questo intervallo, controlla la condizione in modo tale che se il numero è un multiplo di "3", Invoca la condizione precedente dopo"?". Se questa condizione invocata (multipla di 5) viene anche soddisfatta, registri la parola "Fizzbuzz".
  • Nel caso della prima condizione soddisfatta, restituire la parola "Fizz".
  • Altrimenti, accedi a quest'ultimo blocco nella riga successiva. Qui, allo stesso modo, controlla la prima condizione soddisfatta e restituisci la parola "BUZZ".
  • Nell'altro caso, registrare il valore stesso come una stringa tramite la associata "valore di()" metodo.
  • Infine, registrare il risultato corrispondente su ciascuna iterazione.

Produzione

Prima di procedere al prossimo approccio, assicurarsi di includere i seguenti pacchetti per abilitare l'input e manipolare dell'utente "int"Valori, rispettivamente.

Importa Java.util.Scanner;
Importa Java.util.flusso.IntStream;

Approccio 3: implementazione del problema "Fizzbuzz" in Java usando i metodi "Maptoobj ()" e "RangeClosed ()

IL "maptoobj ()Metodo del "Intstream"L'interfaccia viene utilizzata per restituire un flusso valido oggetto e"rangecluso ()"Il metodo restituisce un intstream ordinato sequenziale. Questi metodi possono essere applicati in combinazione con "Ternario"Operatore per restituire la parola corrispondente anziché l'intero all'interno dell'intervallo di input dell'utente.

Sintassi

Static IntStream RangeClusped (int primo, int Last)

In questa sintassi:

  • "Primo"Si riferisce al valore incluso il primo valore.
  • "scorso"Indica l'ultimo valore.

Esempio

Considera l'esempio di seguito:

Classe pubblica Fizzbuzz3
public static void main (string args [])
Scanner Input = New Scanner (Sistema.In);
Sistema.fuori.print ("Inserisci il limite di fine: \ n");
int ininteger = input.NextInt ();
Intstream.rangecluso (1, ininteger).maptoobj (i-> i%3 == 0?(I%5 == 0? "Fizzbuzz": "Fizz") :( I%5 == 0? "Buzz": i+"")).foreach (sistema.fuori :: stampa);
ingresso.vicino();

Nelle righe di codice sopra, eseguire i seguenti passaggi:

  • In primo luogo, crea un "Scanner"Oggetto tramite il"nuovo"Parola chiave e"Scanner()"Costruttore, rispettivamente.
  • IL "Sistema.In"Il parametro legge l'input.
  • Dopodiché, associa il "NextInt ()"Metodo per ottenere l'input come intero.
  • Ora, associa il "rangecluso ()Metodo "con il"Intstream"Interfaccia e specificare l'intervallo facendo riferimento al valore dell'utente-input.
  • Inoltre, applica il "maptoobj ()"Metodo insieme all'operatore ternario per restituire un flusso di valore dell'oggetto.
  • Nota: La funzionalità eseguita nell'operatore ternario è identica all'approccio precedente.
  • Infine, applica il “per ciascuno()"Metodo per visualizzare tutti i valori e chiudere lo scanner tramite"vicino()" metodo.

Produzione

Questo risultato implica che il sequenziale "Intstream"Viene restituito in conformità con l'intervallo di input.

Conclusione

Per implementare il "Fizzbuzz"Problema in Java, applica il"se altro"Affermazione, la"Ternario"Operatore o il"maptoobj ()" E "rangecluso ()"Metodi. Questi approcci applicano un controllo sulla gamma di numeri interi specificati o utente e restituiscono la parola corrispondente in conformità con il gioco, i.e., Regole "Fizzbuzz". Questo blog è guidato per discutere del problema "Fizzbuzz" in Java.