4.11 Exercie: Paysage ou Portrait

Voici un nouvel exercice : écrivez une fonction paysage(largeur, hauteur) qui retourne true si l'image est au format paysage (largeur strictement supérieure à hauteur), et false sinon. Mettez la vidéo en pause pour faire l'exercice, puis revenez pour la correction.

Comme dans l'exercice précédent, on pourrait commencer par un simple if / else, ou utiliser l'opérateur ternaire pour retourner true ou false. Mais en réalité, il existe une troisième solution, beaucoup plus propre : retourner directement le résultat de la comparaison.

L'astuce : retourner l'expression elle-même

Une expression de comparaison comme largeur > hauteur produit déjà un booléen. Il n'y a aucun besoin de la convertir explicitement en true ou false via un if. Écrire if (x > y) return true; else return false; est considéré comme un anti-pattern. La bonne pratique est :

function paysage(largeur, hauteur) {
    return largeur > hauteur;
}

console.log(paysage(800, 600)); // true (paysage)
console.log(paysage(300, 600)); // false (portrait)

Avec 800 × 600, la largeur dépasse la hauteur : true. Avec 300 × 600, on a une image verticale : false. La fonction est tellement courte qu'elle se lit comme sa propre documentation. Retenez ce réflexe : si vous vous apprêtez à écrire return true ou return false directement après un if, vous pouvez probablement retourner directement la condition elle-même. On se retrouve dans la prochaine vidéo.

En résumé

Cet exercice vous enseigne à implémenter une fonction JavaScript nommée « paysage » qui détermine si une image est au format paysage (largeur > hauteur) ou portrait. À travers plusieurs approches (if/else, opérateur ternaire, puis retour direct de l'expression booléenne), vous apprendrez à écrire du code plus propre et optimisé en JavaScript.

Points clés

  • Une fonction paysage() accepte deux paramètres : largeur et hauteur, et retourne un booléen
  • L'opérateur de comparaison (>) permet de tester si la largeur dépasse la hauteur
  • Plutôt que de retourner explicitement true/false, retourner directement l'expression booléenne rend le code plus élégant et lisible
  • Une image est en format paysage lorsque sa largeur est supérieure à sa hauteur
  • Les dimensions peuvent être testées en console.log() avec des exemples concrets (800×600 = paysage, 300×600 = portrait)

Questions fréquentes

Pourquoi est-ce une mauvaise pratique de retourner explicitement true ou false ?

Retourner true/false explicitement est redondant. Comme l'expression booléenne (largeur > hauteur) s'évalue déjà à true ou false, vous pouvez la retourner directement, ce qui rend le code plus concis et lisible sans changer son comportement.

Comment tester ma fonction paysage() ?

Appelez simplement la fonction avec console.log() en passant des dimensions : console.log(paysage(800, 600)) pour une image paysage doit afficher true, et console.log(paysage(300, 600)) pour une image portrait doit afficher false.

Quelle est la différence entre l'opérateur ternaire et le return direct de l'expression ?

L'opérateur ternaire (condition ? vrai : faux) est utile pour assigner des valeurs différentes, mais si vous retournez simplement true ou false selon la condition, retourner directement l'expression booléenne est plus simple et plus efficace.