logo

Programme FizzBuzz en Java

FizzBuzz est un jeu populaire parmi les enfants. En jouant à cela, les enfants apprennent la division. Maintenant le FizzBuzz Le jeu est devenu une question de programmation populaire fréquemment posée dans Programmation Java entretiens. Dans cette section, nous apprendrons comment créer un Programme FizzBuzz en Java .

Règles du jeu FizzBuzz

Les règles du jeu FizzBuzz sont très simples.

  • Dire Pétiller si le nombre est divisible par 3 .
  • Dire Bourdonner si le nombre est divisible par 5 .
  • Dire FizzBuzz si le nombre est divisible par les deux 3 et 5.
  • Retourner le nombre lui-même, si le numéro est non divisible par 3 et 5.

Remarque : Au lieu de 3 et 5, vous pouvez également utiliser différents diviseurs (comme 5 et 7, etc.) et une chaîne (Fizz et Buzz).

Implémentons les règles ci-dessus dans un programme Java.

Programme Java FizzBuzz

Il existe deux manières de créer un programme FizzBuzz en Java :

objet en programmation Java
  • Utilisation de l'instruction else-if
  • Utiliser Java 8

Utiliser l'instruction else-if

Dans le programme suivant, nous lisons un entier (n) de l'utilisateur qui est la limite supérieure pour imprimer le Fizz ou le Buzz ou le FizzBuzz. La boucle for commence à 1 et s'exécute jusqu'à ce que la condition 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>

La méthode analyse deux paramètres :

    startInclus :C'est la valeur initiale.y compris:La limite supérieure inclusive.

Utilisation de la méthode mapToObj()

La méthode effectue une opération intermédiaire et renvoie un Stream à valeur objet composé des résultats de l'application de la fonction donnée aux éléments de ce flux.

chaîne booléenne java

Syntaxe:

 Stream mapToObj(IntFunction mapper) 

La méthode analyse un paramètre mappeur (du type d'élément du nouveau flux). Il renvoie le nouveau flux.

FizzBuzzExample2.java

Java est vide
 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(); } } 

Sortir:

 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 

Notez que, dans le programme ci-dessus, la logique de FizzBuzz est ajustée sur une seule ligne en utilisant le opérateur ternaire . Cela réduit la ligne de code. Nous avons imprimé Pétiller si le nombre est multiple de 3, s'imprime Bourdonner si le nombre est un multiple de 5, imprime FizzBuzz si le nombre est multiple de 3 et 5, sinon imprime le nombre lui-même.