Aller au contenu

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

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.