4.10 Exercice: max de deux nombres
Voici un exercice classique : écrivez une fonction qui prend deux nombres en paramètres et renvoie le maximum des deux. Appelez ensuite cette fonction avec plusieurs jeux d'arguments pour vous assurer qu'elle fonctionne dans tous les cas. Mettez la vidéo en pause pour faire l'exercice puis revenez pour la correction.
Implémentation pas à pas
Commençons par la version la plus simple, avec une instruction if / else :
function max(a, b) {
if (a > b)
return a;
else
return b;
}
Ici, les paramètres a et b sont volontairement courts : la logique est triviale et des noms longs n'apporteraient rien. Testez avec max(1, 2), max(3, 1), max(3, 3) : on couvre les trois cas (deuxième plus grand, premier plus grand, égalité). C'est une bonne habitude de tester ses fonctions avec plusieurs cas représentatifs.
Première optimisation : le else est inutile. Si a > b, on fait return a, donc la fonction se termine. Tout code après ce return n'est de toute façon exécuté que si la condition est fausse :
function max(a, b) {
if (a > b) return a;
return b;
}
Deuxième optimisation, encore plus concise : utilisons l'opérateur ternaire vu plus tôt dans le cours. La fonction se réduit à une seule ligne :
function max(a, b) {
return a > b ? a : b;
}
Trois implémentations strictement équivalentes, mais la dernière est la plus lisible et la plus idiomatique. max(5, 10) retourne 10, max(7, 3) retourne 7. La fonction fonctionne pour tous les cas. On se retrouve dans la prochaine vidéo.
En résumé
Cet exercice enseigne comment créer une fonction JavaScript retournant le maximum de deux nombres. L'instructeur montre une implémentation basique avec une instruction if, puis l'optimise progressivement en supprimant le else et en utilisant l'opérateur conditionnel ternaire. L'importance de tester la fonction avec plusieurs cas (second > premier, premier > second, égalité) est soulignée pour valider son bon fonctionnement.
Points clés
- Créer une fonction acceptant deux paramètres à comparer
- Utiliser une instruction if pour comparer et retourner le maximum
- Simplifier le code en supprimant else après un return immédiat
- Utiliser l'opérateur ternaire (a > b ? a : b) pour une syntaxe concise
- Tester avec au moins trois cas : premier > second, second > premier, égalité
- Les noms courts (a, b) sont acceptables pour une logique simple sans complexité excessive
Questions fréquentes
Pourquoi supprimer le mot-clé else après le return ?
Quand on retourne à l'intérieur du if, l'exécution de la fonction s'arrête à ce point. Les lignes suivantes ne seront jamais atteintes, donc le else devient superflu. On peut simplifier en retournant directement la valeur alternative après le if, sans mot-clé else.
Quel est l'avantage d'utiliser l'opérateur ternaire pour cette fonction ?
L'opérateur conditionnel ternaire (? :) rend le code plus concis et lisible pour les conditions simples. Au lieu de deux blocs if/else retournant des valeurs, on réduit la fonction à une seule ligne : return a > b ? a : b.
Quels cas de test faut-il couvrir pour vérifier que la fonction fonctionne ?
Il faut tester au minimum trois scénarios : quand le premier argument est plus grand, quand le deuxième argument est plus grand, et quand les deux arguments sont égaux. Cela couvre tous les cas possibles et valide la logique de comparaison.