fantasticode.fr
Image default

Comprendre une condition (if/else) en programmation

En bref

Une condition est un aiguillage : le programme teste une affirmation — « l’âge est-il supérieur ou égal à 18 ? » — et emprunte un chemin si elle est vraie, un autre si elle est fausse. C’est le concept qui donne aux programmes leur intelligence apparente : sans conditions, un programme déroulerait toujours les mêmes instructions dans le même ordre ; avec elles, il réagit, choisit, s’adapte. L’anatomie complète tient en trois mots : si (if) ouvre le premier chemin, sinon si (elif ou else if) ajoute des cas intermédiaires testés dans l’ordre, sinon (else) ramasse tout le reste. Le test lui-même produit un booléen — vrai ou faux — fabriqué par des comparaisons (égal, supérieur, inférieur) qu’on peut combiner avec ET et OU. Deux réflexes à graver d’entrée : le double égal compare (le simple égal affecte), et l’ordre des tests compte — le cas le plus spécifique se teste en premier.

Jusqu’ici, un programme est un train sur un rail unique : les instructions défilent dans l’ordre, toujours le même. La condition pose le premier aiguillage — et d’un coup, le programme décide. Comprendre une condition if/else est la troisième marche du socle, après la variable et aux côtés de la boucle ; ce guide la démonte pièce par pièce, Python et JavaScript en parallèle.

Une condition, expliquée avec les mains

Tu appliques des conditions depuis toujours : « S’il pleut, je prends le parapluie ; sinon, les lunettes de soleil. » Décortique la phrase et tu tiens toute l’anatomie du concept : un test (il pleut ?) qui n’a que deux réponses possibles — vrai ou faux, ce que les programmeurs appellent un booléen —, un chemin pour le vrai (le parapluie), un chemin pour le faux (les lunettes). Le programme fait exactement cela, à un détail près qui fait toute sa rigueur : son test porte sur des valeurs de variables, comparées avec précision — âge supérieur ou égal à 18, score égal à 100, réponse différente de « oui ».

La vie ayant plus de deux cas, la structure se déplie. « S’il gèle : gros manteau ; sinon s’il pleut : parapluie ; sinon : lunettes » — les cas intermédiaires s’enchaînent avec des « sinon si », testés dans l’ordre, et le « sinon » final ramasse tout ce qui reste. Ce détail de l’ordre est capital : le programme s’arrête au premier test vrai et ignore les suivants — d’où la règle d’or que tu retrouveras du premier exercice au code professionnel : le cas le plus spécifique se teste en premier (le célèbre FizzBuzz des exercices ne tient que si « multiple de 15 » passe avant « multiple de 3 »). Dernière pièce : les tests se combinent — ET exige que tout soit vrai (majeur ET membre), OU se contente d’un seul (samedi OU dimanche) — et voilà l’aiguillage complet, capable d’exprimer n’importe quelle décision.

À quoi ça ressemble dans le code

En Python, la phrase se traduit presque mot à mot : if age >= 18: ouvre le premier chemin (le bloc indenté dessous s’exécute si le test est vrai), elif age >= 12: ajoute un cas intermédiaire, else: ramasse le reste. Les comparateurs sont ceux de l’école — >, <, >=, <= — avec deux recrues : == pour « est égal à » et != pour « est différent de ». Les combinaisons s’écrivent en toutes lettres, and et or : if age >= 18 and membre == True: — que Python permet d’ailleurs d’élégamment raccourcir en if age >= 18 and membre:, le booléen se suffisant à lui-même. Tout cela se pratique dès les bases du Python.

En JavaScript, même squelette, habillage différent : if (age >= 18) { … } else if (age >= 12) { … } else { … } — le test entre parenthèses, les chemins entre accolades, les combinaisons avec && (ET) et || (OU). Une spécificité mérite le détour : JavaScript possède deux égalités, == et === — la première convertit les types avant de comparer (avec des résultats surprenants), la seconde compare valeur ET type strictement. Le réflexe à prendre au premier jour, martelé dans les bases du JavaScript : toujours ===. Deux dialectes, un seul aiguillage — et le même partout ailleurs, de PHP à Java : ce concept-là est un passeport universel.

Les pièges classiques (et comment les éviter)

Piège 1 : = au lieu de ==. LE grand classique : écrire if score = 100 (une affectation) au lieu de if score == 100 (une comparaison) — Python le refuse net, JavaScript peut le laisser passer avec des effets absurdes. Le remède mnémotechnique : un signe range, deux signes comparent — et en JavaScript, trois signes comparent bien. Piège 2 : l’ordre qui trahit. Tester « multiple de 3 » avant « multiple de 15 » fait que le cas 15 n’est jamais atteint — le premier test vrai gagne, les suivants dorment. Le remède : ordonner du plus spécifique au plus général, et dérouler mentalement une valeur-piège (15, justement) à travers la cascade.

Piège 3 : le sinon oublié. Une cascade sans else laisse des situations sans réponse — l’utilisateur tape « peut-être », rien ne se passe, mystère. Le remède : sauf raison précise, toute cascade se termine par un else, ne serait-ce que pour afficher « réponse non reconnue ». Piège 4 : comparer des natures différentes. La saisie clavier arrive souvent en texte — comparer « 18 » (du texte) à 18 (un nombre) échoue ou surprend selon les langages ; le remède : convertir avant de comparer (int() en Python, Number() en JavaScript), un réflexe qui t’évitera des soirées entières. Le concept est complet — et il n’attend que la pratique : les exercices JavaScript comme Python en font leur pain quotidien, la fonction voisine s’en nourrit, et la vue d’ensemble reste dans notre guide complet pour apprendre à coder : chaque programme un peu vivant est, au fond, un réseau d’aiguillages — tu viens d’apprendre à les poser.

Questions fréquentes

C’est quoi une condition if/else, en une phrase ?

Un aiguillage : le programme teste une affirmation (vraie ou fausse) et exécute un bloc d’instructions si elle est vraie, un autre sinon — avec des cas intermédiaires possibles via « sinon si ». C’est le mécanisme qui permet à un programme de réagir et de décider au lieu de dérouler toujours la même suite.

Quelle différence entre = et == ?

Le signe simple = affecte : il range une valeur dans une variable. Le double == compare : il teste l’égalité et produit vrai ou faux. Les confondre est l’erreur la plus classique du débutant — et en JavaScript, on préfère même le triple ===, qui compare valeur et type sans conversion cachée.

Pourquoi l’ordre des conditions est-il important ?

Parce que le programme s’arrête au premier test vrai et ignore les suivants : si « multiple de 3 » est testé avant « multiple de 15 », le second cas n’est jamais atteint. La règle : ordonner les tests du plus spécifique au plus général, et vérifier la cascade avec une valeur-piège.

C’est quoi un booléen ?

Une valeur qui ne peut être que vraie ou fausse (true/false) — le résultat de tout test de condition. Les booléens se rangent dans des variables (membre = True), se combinent avec ET et OU, et pilotent les aiguillages du programme comme les boucles while. C’est la monnaie du raisonnement en code.

Sources

Cet article a une vocation informative et pédagogique. Les plateformes, outils et formations éventuellement cités le sont à titre d’exemple ; compare plusieurs options avant de t’engager ou de payer.