logo

Programma FizzBuzz in Java

FizzBuzz è un gioco popolare tra i bambini. Giocando a questo, i bambini imparano la divisione. Ora il FizzBuzz game è diventata una domanda di programmazione popolare che viene posta frequentemente Programmazione Java interviste. In questa sezione impareremo come creare un file Programma FizzBuzz in Java .

Regole del gioco FizzBuzz

Le regole del gioco FizzBuzz sono molto semplici.

  • Dire Effervescente se il numero è divisibile per 3 .
  • Dire Ronzio se il numero è divisibile per 5 .
  • Dire FizzBuzz se il numero è divisibile per Entrambi 3 e 5.
  • Restituisci il numero stesso, se il numero lo è non divisibile entro 3 e 5.

Nota: invece di 3 e 5, puoi utilizzare anche divisori diversi (come 5 e 7, ecc.) e stringhe (Fizz e Buzz).

Implementiamo le regole di cui sopra in un programma Java.

Programma Java FizzBuzz

Esistono due modi per creare il programma FizzBuzz in Java:

  • Utilizzo dell'istruzione else-if
  • Utilizzando Java8

Utilizzo dell'istruzione else-if

Nel programma seguente, leggiamo un numero intero (n) dall'utente che è il limite superiore per stampare Fizz o Buzz o FizzBuzz. Il ciclo for inizia da 1 ed viene eseguito fino alla condizione i<=n 3 5 becomes false. the else-if statement to check number is multiple of and or not.< p>

FizzBuzzEsempio1.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>

Il metodo analizza due parametri:

    inizioInclusivo:È il valore iniziale.Compreso:Il limite superiore inclusivo.

Utilizzando il metodo mapToObj()

Il metodo esegue un'operazione intermedia e restituisce uno Stream con valori di oggetto costituito dai risultati dell'applicazione della funzione specificata agli elementi di questo flusso.

Sintassi:

incapsulamento Java
 Stream mapToObj(IntFunction mapper) 

Il metodo analizza un parametro mappatore (del tipo di elemento del nuovo flusso). Restituisce il nuovo flusso.

FizzBuzzEsempio2.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(); } } 

Produzione:

 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 

Tieni presente che, nel programma sopra riportato, la logica di FizzBuzz viene regolata in una riga utilizzando il comando operatore ternario . Riduce la riga di codice. Abbiamo stampato Effervescente se il numero è multiplo di 3, viene stampato Ronzio se il numero è multiplo di 5, viene stampato FizzBuzz se il numero è multiplo di 3 e 5, altrimenti stampa il file numero si.