Prepacamp
Bienvenue !
Introduction
Commentaires
Blocs
Stockage de l'information
Variables
Opérateurs
Structures de contrôle
Fonctions
Principes
Tableaux
Objets
Exceptions
Fizz Buzz
Shell
Tremplin
Programme
1-myLs
2-shell
3-async
Recursif
5-search
6-sort
7-typescript
8-oop
Git
Branches
Liens
Nextech
Entreprises
B2P web
ITSO
CBA
Elipce
Glanum
CF Group France
Outils
Can I Use ?
Notion
Discord
Slack
CodingGame
Euler
Indeed
Documentations
Git
Fizz/Buzz
Exercice
afficher les chiffres de 1 à 100, suivi de :
"fizz" si ce chiffre est divisible par 3
"buzz" si ce chiffre est divisible par 5
"fizzbuz" si ce chiffre est à la fois divisible par 3 et par 5
Analyse
je repère les mots clés et leur implication (=>) dans le code
Afficher => console.xxx
suivi de => concatenation avec +
divisible par => if avec modulo (multiple de...)
de x à y => boucle
à la fois => &&
je reflechit aux variables necessaires. Ici aucune n'apparait clairement. S'il y en a alors je ne neglige pas le temps de reflexion sur le nom que je vais lui donner : clair et efficace !
je repère les cas de figure. Ici, on en voit clairement 3 !
J'identifie les endroits ou mon code risque de planter, et je met des traces
Vers l'infini...
Je reflechit aux optimisations possibles dans mon code.
Ici deux if, seront plus efficace qu'un if/elseif.
utiliser : +=
1+2 => je reduit mes cas possibles à 2. Moins de traitement, moins de temps de calcul, moins d'attente pour l'utilisateur, moins d'electricité consommé...
utiliser une valeur au coeur de mon code est rarement une bonne pratique. Avec iMax, il me sera plus facile de modifier mon code pour obtenir le resultat avec les chiffres de 1 a 1 000 000).
je modifie l'habituel i<iMax par i<=iMax.
C'est plus court que i<iMax+1,
et surtout plus clair que i<101.
Proposition de solution
let iMax = 100; for(let i=0; i<= iMax; i++) { //console.log('Trace FOR ' + i); let sResult = i; if(iMax%3===0) { //console.log('Trace IF3'); sResult += 'fizz'; } if(iMax%5===0) { //console.log('Trace IF5'); sResult += 'buzz'; } } console.log(sResult);
On emballe !
Je verifie que mon code est correctement indenté
Je commente ou supprime mes traces
Je verifie si mon code est suffiament auto explicatif, sinon, j'ajoute des commentaires.
Comme un pro !
je vais plutot faire une fonction réutilisable
je passe iMax en argument de ma fonction
j'utilise un return plutot qu'un console.log
j'utilise GIT !
je documente ma fonction avec sa valeur d'entrée, un exemple de sortie