Correction des exercices - JavaScript
Exercice 1 : Pair ou impair
Version simple avec prompt
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
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
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
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
for (let i = 1; i <= 100; i++) {
if (i % 3 === 0 && i % 5 === 0) {
document.write("FizzBuzz<br>");
} else if (i % 3 === 0) {
document.write("Fizz<br>");
} else if (i % 5 === 0) {
document.write("Buzz<br>");
} else {
document.write(i + "<br>");
}
}
Version alternative avec concaténation
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 + "<br>");
}
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
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.