Catégories
Conseil Découverte Javascript

FizzBuzz… Mais qu’est ce que c’est ?

Le « FizzBuzz » est à l’origine un jeu pour apprendre aux enfants le principe de la division. Les enfants doivent énoncer les chiffres dans l’ordre et remplacer le nombre par « Fizz » s’il est divisible par 3 ou « Buzz » s’il est divisible par 5.

Et en quoi ça me concerne ?

Dans le monde des développeurs, ce jeu est repris sous forme de test.
Lors d’un entretien d’embauche, ce test peut être proposé parmi d’autres tests techniques.  Il permet à l’employeur de vérifier si, sous environ 15 minutes, le candidat est capable d’écrire ce programme dans le langage demandé.

J’ai eu à faire cet exercice lors du cours sur OpenClassrooms que je suis actuellement : Apprenez à coder avec JavaScript.

Alors, on programme ?

L’énoncé est simple :
Écrivez un programme qui affiche tous les nombres entre 1 et 100 avec les exceptions suivantes :
Il affiche :
– « Fizz » à la place du nombre si celui-ci est divisible par 3.
– « Buzz » à la place du nombre si celui-ci est divisible par 5 et non par 3.
– « FizzBuzz » à la place du nombre si celui-ci est divisible à la fois par 3 et par 5.

Pour réussir, il faut utiliser l’opérateur modulo « % » qui renvoie le reste de la division d’un entier par un autre. Plus simplement si un chiffre est divisible par un autre, le reste est nul :

10 % 2 => 0 (divisible)
alors que 
5 % 2 => 1 (non divisible)

Je vous laisse chercher le programme en JavaScript…
Avec un peu de recherche, je suis sure que vous allez trouver la solution !!! 😉

N’allez pas plus loin… Entraînez-vous avant !


Allez je partage avec vous ma solution en JavaScript…

let i=1;

while (i <= 100) {
  if ((i % 3 === 0) && (i % 5 === 0)) {
    console.log("FizzBuzz");
    } else if (i % 3 === 0) {
      console.log("Fizz");
      } else if (i % 5 === 0) {
        console.log("Buzz");
        } else {
          console.log(i);
        }
  i++;
}
Spread the love

3 réponses sur « FizzBuzz… Mais qu’est ce que c’est ? »

Salut Marie
Il est cool ton blog sur ton apprentissage du code

Bravo pour la résolution du FizzBuzz. Ce n’est pas un exercice si simple. On peut facilement ne pas faire les tests dans le bon ordre…

Coté amélioration, je pense que ton code aurait été plus lisible avec une boucle for à la place d’un while : le for est parfaitement adaptée ici car on a cette notion de pas à pas présent. Le while est plus générique mais marche bien entendu aussi.
Attention, l’indentation n’est pas bonne. Voir ici un exemple : https://gist.github.com/newtom69/859b4f29656299f6eb20864599f4f549
Astuce : Sous VSCode tu fait Shift Alt F et ça corrige tout seul 😃

Merci Thomas pour ce retour !

En effet, avec un peu plus de recul maintenant, l’utilisation d’une boucle for est plus appropriée !
En plus elle est bien plus pratique à manier et évite plus facilement de faire des boucles infinies…
(En cours PHP j’ai d’ailleurs refait cet exercice et j’ai utilisé tout naturellement un FOR.)

Je n’avais pas vu mon problème d’indentation…
Avec ton code sous les yeux, cela devient flagrant… (oserais-je mettre ça sur le compte de mes débuts d’apprentissages ?!?!)
Et merci pour l’astuce VSCode : elle me permettra de faire beaucoup moins d’erreurs ! 😉

Trop de condition. Moyen de faire mieux en créant une string vide.

Si divisible par 3, on met « Fizz » dedans. Si divisible par 5 on concatène la variable par buzz => $result = $result. »Buzz »
Si $sresult vide alors on affiche i sinon result.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.