Les conditions - if, else, comparaisons
Faire des choix dans ton code pour que la tortue se comporte différemment selon la situation
§1.Pourquoi des conditions ?
Jusqu'ici, ton code fait toujours la même chose dans le même ordre. C'est linéaire. Mais souvent, tu veux que ta tortue se comporte DIFFÉREMMENT selon les circonstances : si elle dépasse une certaine distance, qu'elle revienne en arrière. Si l'indice est pair, qu'elle dessine en rouge ; sinon en bleu.
C'est le rôle des conditions : un mécanisme pour dire à l'ordinateur « SI cette situation est vraie, fais ÇA, SINON fais autre chose ». C'est la 3e brique fondamentale de la programmation, après les commandes séquentielles et les boucles.
let taille = 80 if (taille > 50) { couleur("red") // gros trait → rouge} else { couleur("blue") // petit trait → bleu} avancer(taille)§3.La structure if (...)
- if (condition) { ... }
- Exécute le bloc { ... } SEULEMENT SI la condition est vraie. Sinon, on passe directement à la suite.
- if (...) { ... } else { ... }
- Si la condition est vraie, fait le premier bloc. Sinon (else), fait le bloc else.
- if (...) { ... } else if (...) { ... } else { ... }
- Permet de tester PLUSIEURS conditions dans l'ordre. Dès qu'une est vraie, on exécute son bloc et on saute tout le reste.
let vitesse = 75 if (vitesse < 30) { couleur("green") // lente : vert} else if (vitesse < 60) { couleur("orange") // moyenne : orange} else { couleur("red") // rapide : rouge} avancer(50)§5.Les opérateurs de comparaison
- x === y
- Égal à (TROIS signes égal). Attention : x = y est une AFFECTATION (donne la valeur de y à x), pas une comparaison.
- Exemple. if (i === 0) { ... } — vrai uniquement quand i vaut 0.
- x !== y
- Différent de.
- Exemple. if (couleur !== "red") { ... }
- x < y / x > y
- Plus petit que / plus grand que (strict, n'inclut pas l'égalité).
- x <= y / x >= y
- Inférieur ou égal / supérieur ou égal.
§7.Conditions dans une boucle
Le combo boucle + condition est ultra puissant. Tu peux alterner des couleurs, sauter certains tours, faire des motifs en damier…
for (let i = 0; i < 20; i++) { if (i % 2 === 0) { couleur("red") // i pair : rouge } else { couleur("blue") // i impair : bleu } avancer(20) tourner_droite(18)}i % 2 vaut 0 pour i pair, 1 pour i impair. On utilise cette propriété pour alterner.
§9.Combiner plusieurs conditions
- && (et)
- VRAI si les DEUX conditions sont vraies en même temps.
- Exemple. if (x > 0 && x < 100) — vrai uniquement quand x est entre 0 et 100.
- || (ou)
- VRAI si au moins UNE des deux conditions est vraie.
- Exemple. if (jour === "samedi" || jour === "dimanche") — vrai le weekend.
- ! (non)
- Inverse une condition : !vrai = faux, !faux = vrai.
- Exemple. if (!estPair) { ... } — exécute si estPair n'est PAS vrai.
for (let i = 0; i < 30; i++) { // Tous les nombres pairs ET multiples de 3 → bloc rouge if (i % 2 === 0 && i % 3 === 0) { couleur("red") epaisseur(5) } else { couleur("#7c3aed") epaisseur(2) } avancer(15) tourner_droite(12)}§11.Les valeurs booléennes
Une condition renvoie toujours une valeur dite « booléenne » : soit true (vrai), soit false (faux). Ce sont les seules valeurs que peut prendre un booléen.
Tu peux stocker un booléen dans une variable : let trouve = false; puis plus tard if (...) { trouve = true; }. C'est très utile pour mémoriser un état (déjà vu ? déjà gagné ? déjà dessiné ?).
let dejaTourne = false for (let i = 0; i < 10; i++) { avancer(40) // À mi-parcours, on tourne à 90° une seule fois if (i === 5 && !dejaTourne) { tourner_droite(90) dejaTourne = true } else { tourner_droite(36) }}À retenir
- if (condition) { ... } else { ... } pour faire un choix.
- Les comparaisons utilisent === (égalité), !==, <, >, <=, >=.
- TROIS signes égal pour comparer, UN seul signe = pour affecter.
- && (et), || (ou), ! (non) pour combiner ou inverser.
- Un booléen vaut true ou false — utile pour mémoriser un état.
- if + boucle = comportement riche : alternance, motifs complexes.