Bonjour,
Après lecture de tous les commentaires, je vous propose de reformuler la partie "Cours" de l'exercice 1.2.5 comme ci-dessous. J'ai ajouté un commentaire culturel sur les opérateurs et laissé seulement l'utilisation de ?: comme opérateur.
Qu'en dites-vous ? Si vous êtes d'accord, je me charge de la mise à jour.
Cordialement,
Damien.
Cours
La plupart des opérateurs des langages de programmation sont unaires (1 seul opérande) ou binaires (2 opérandes). C'est notamment le cas des opérateurs arithmétiques et logiques usuels comme + ou >= (binaires, x + 3, x >= y) ou ! et - (unaires, ! trouve, - y). Parmi les opérateurs unaires, on peut aussi citer typeof vu lors de l'exercice précédent (typeof hi).
L'opérateur ? : est ternaire, il nécessite 3 opérandes : une condition (expression booléenne) et deux valeurs. Il évalue l'expression booléenne et si elle est vraie renvoie la première valeur et sinon la seconde, à la manière d'un simple if...else.
Les deux codes suivants sont équivalents :
1 2 3 4 5
| if (condition) {
x = valeurSiVrai;
} else {
x = valeurSiFaux;
} |
x = condition ? valeurSiVrai : valeurSiFaux;
Dans l'exemple ci-dessous :
console.log(number >= 0 ? '+' : '-'); // Affiche "+" si la variable "number" est positive, sinon "-"
si la variable number est supérieure ou égale à 0, l'expression number >= 0 ? '+' : '-' renvoie + et sinon -. Ce résultat devient l'argument de la fonction console.log.
On peut imbriquer des conditions ternaires ou les utiliser avec des expressions plus complexes, mais dans ce cas la lisibilité devient souvent inférieure à celle d'une structure if...else.
Partager