# Correction des exercices - JavaScript --------- ## Exercice 1 : Pair ou impair ### Version simple avec prompt ```javascript const nombre = parseInt(prompt("Entrez un nombre :")); if (nombre % 2 === 0) { document.write(nombre + " est pair"); } else { document.write(nombre + " est impair"); } ``` ### Version avec gestion des erreurs ```javascript const saisie = prompt("Entrez un nombre :"); const nombre = parseInt(saisie); if (isNaN(nombre)) { document.write("Erreur : vous n'avez pas entré un nombre valide"); } else if (nombre % 2 === 0) { document.write(nombre + " est pair"); } else { document.write(nombre + " est impair"); } ``` **Points importants :** - `%` est l'opérateur modulo (reste de la division) - Un nombre est pair si `nombre % 2` vaut 0 - `isNaN()` vérifie si la valeur n'est pas un nombre (Not a Number) - `parseInt()` convertit une chaîne en entier --------- ## Exercice 2 : Calculatrice simple ### Version simple ```javascript const a = parseFloat(prompt("Entrez le premier nombre :")); const b = parseFloat(prompt("Entrez le deuxième nombre :")); const operation = prompt("Quelle opération ? (+, -, *, /)"); let resultat; if (operation === "+") { resultat = a + b; } else if (operation === "-") { resultat = a - b; } else if (operation === "*") { resultat = a * b; } else if (operation === "/") { if (b === 0) { resultat = "Erreur : division par zéro impossible"; } else { resultat = a / b; } } else { resultat = "Opération non reconnue"; } document.write(a + " " + operation + " " + b + " = " + resultat); ``` ### Version avec switch ```javascript const a = parseFloat(prompt("Entrez le premier nombre :")); const b = parseFloat(prompt("Entrez le deuxième nombre :")); const operation = prompt("Quelle opération ? (+, -, *, /)"); let resultat; switch (operation) { case "+": resultat = a + b; break; case "-": resultat = a - b; break; case "*": resultat = a * b; break; case "/": if (b === 0) { resultat = "Erreur : division par zéro"; } else { resultat = a / b; } break; default: resultat = "Opération non reconnue"; } document.write(a + " " + operation + " " + b + " = " + resultat); ``` **Points importants :** - `parseFloat()` convertit en nombre décimal (contrairement à `parseInt()` qui donne un entier) - Il faut vérifier la division par zéro - `switch` est une alternative à plusieurs `if/else if` - Chaque `case` doit se terminer par `break` --------- ## Exercice 3 : FizzBuzz ```javascript for (let i = 1; i <= 100; i++) { if (i % 3 === 0 && i % 5 === 0) { document.write("FizzBuzz
"); } else if (i % 3 === 0) { document.write("Fizz
"); } else if (i % 5 === 0) { document.write("Buzz
"); } else { document.write(i + "
"); } } ``` ### Version alternative avec concaténation ```javascript for (let i = 1; i <= 100; i++) { let resultat = ""; if (i % 3 === 0) { resultat = resultat + "Fizz"; } if (i % 5 === 0) { resultat = resultat + "Buzz"; } if (resultat === "") { resultat = i; } document.write(resultat + "
"); } ``` **Points importants :** - L'ordre des conditions est important : on teste d'abord "multiple de 3 ET 5" - `&&` est l'opérateur ET logique - La version alternative évite la répétition du test "multiple de 3 ET 5" --------- Auteur : Florian Mathieu Licence CC BY NC Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.