Si… alors : les conditions (4e) Tuto

Si… alors : les conditions

Durée estimée
10 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Ce tuto fait suite à Variables et compteurs. Jusqu'à présent, tous nos programmes faisaient toujours la même chose, indépendamment de la situation. On va apprendre à les rendre intelligents : exécuter une action seulement si une certaine condition est vérifiée. C'est l'idée de l'instruction conditionnelle, le bloc le plus utilisé en programmation après la boucle.

Qu'est-ce qu'une condition

Une condition est une question dont la réponse est forcément oui ou non (en programmation, on dit vrai ou faux). Quelques exemples du quotidien :

  • « S'il pleut, je prends un parapluie » → la condition « il pleut » est soit vraie, soit fausse.
  • « Si j'ai plus de 18 ans, je peux voter » → on compare deux nombres.
  • « Si le feu est rouge, je m'arrête » → on teste un état.

Dans Scratch, les conditions sont représentées par des blocs de forme hexagonale (six côtés). Cette forme particulière permet de les emboîter uniquement dans les encoches hexagonales prévues pour les recevoir — l'éditeur empêche ainsi toute erreur de syntaxe.

Les blocs de comparaison

Trois blocs hexagonaux fondamentaux sont disponibles dans la catégorie Opérateurs (vert clair) :

… = …Teste si deux valeurs sont égales
… < …Teste si la première valeur est strictement inférieure à la seconde
… > …Teste si la première valeur est strictement supérieure à la seconde

Trois comparaisons isolées

Voici trois exemples à tester en glissant les blocs depuis la palette Opérateurs vers la zone de scripts :

  • $5 < 10$ : vrai (cinq est bien strictement inférieur à dix) ;
  • $7 = 7$ : vrai (les deux valeurs sont identiques) ;
  • $3 > 8$ : faux (trois n'est pas supérieur à huit).

Dans l'éditeur, un clic sur un bloc hexagonal isolé affiche brièvement le résultat « vrai » ou « faux ».

Remarque

On peut placer n'importe quelle valeur dans les champs ronds d'un bloc de comparaison : un nombre fixe, une variable (par exemple score > $100$), une opération (par exemple N $\geq$ $3$) ou même un texte. Scratch compare alors les deux valeurs et renvoie vrai ou faux.

L'instruction « si … alors »

Le bloc si … alors se trouve dans la catégorie Contrôle (jaune). Il possède une encoche hexagonale où l'on glisse un bloc de comparaison. Les instructions placées à l'intérieur ne s'exécutent que si la condition est vraie ; sinon, elles sont sautées.

Annoncer la victoire

On veut féliciter le joueur dès que son score atteint $100$. Le compteur monte de $10$ toutes les secondes ; à chaque incrément, on teste si la barre est franchie.

Programme Scratch incrémentant un score puis disant Bravo dès qu'il atteint 100

Tant que score reste inférieur à $100$, le bloc dire n'est pas exécuté. Dès que la condition devient vraie, le chat affiche « Bravo ! » à chaque tour de boucle jusqu'à la fin des $15$ répétitions.

Projet : annoncer la victoire .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

L'instruction « si … alors … sinon »

Quand il y a deux cas distincts à traiter (un pour « vrai », un pour « faux »), on utilise le bloc si … alors … sinon. Il possède deux compartiments : le premier s'exécute si la condition est vraie, le second si elle est fausse.

Pair ou impair ?

On tire un nombre au hasard entre $1$ et $100$ et on annonce s'il est pair ou impair. Le test repose sur l'opérateur modulo : le reste de la division par $2$ est $0$ pour un nombre pair, et $1$ pour un nombre impair.

Programme Scratch tirant un nombre aléatoire entre 1 et 100 puis disant pair ou impair selon le reste de sa division par 2

Le chat tire $n$, l'affiche brièvement, puis annonce sa parité. À chaque clic sur le drapeau vert, un nouveau nombre est tiré.

Scène Scratch avec le chat affichant pair dans une bulle après avoir tiré un nombre

Projet : pair ou impair .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Valider une saisie utilisateur

Combinées au bloc demander du tuto précédent, les conditions permettent de vérifier qu'une saisie utilisateur a du sens avant de poursuivre. Reprenons le programme « polygone » du tuto Variables : un polygone régulier a au moins $3$ côtés. Si l'utilisateur tape $1$ ou $2$, on refuse poliment et on ne dessine rien.

Polygone validé

Programme Scratch qui demande le nombre de côtés et refuse de tracer si la réponse est inférieure à 3

Si l'utilisateur tape $2$, le chat répond « Trop petit ! » et le tracé est ignoré. S'il tape $5$, le programme suit la branche sinon et trace un pentagone.

Projet : polygone validé .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Scène Scratch avec le chat affichant la bulle Trop petit après une saisie utilisateur de 2

Attention

La condition à tester est bien $N < 3$ (refuser), pas $N \geq 3$ (accepter). Dans le bloc sinon, la condition est forcément fausse — donc $N \geq 3$ est garanti, on peut tracer en toute sécurité. Inverser les deux branches conduit à dessiner un polygone… même quand le nombre de côtés est invalide.

Récapitulatif des blocs Conditions

Bloc Effet
Bloc hexagonal … = … Renvoie vrai si les deux valeurs sont égales, faux sinon
Bloc hexagonal … < … Renvoie vrai si la première valeur est strictement inférieure à la seconde
Bloc hexagonal … > … Renvoie vrai si la première valeur est strictement supérieure à la seconde
si … alors Exécute les instructions internes uniquement si la condition est vraie
si … alors … sinon Exécute la première branche si la condition est vraie, la seconde si elle est fausse

Remarque

On peut combiner plusieurs conditions avec les opérateurs logiques et, ou et non (catégorie Opérateurs, blocs hexagonaux à deux encoches hexagonales). Par exemple : si âge $\geq$ $11$ et âge $\leq$ $15$ alors « tu es au collège ». Voir aussi la fiche méthode : Utiliser une instruction conditionnelle dans Scratch.

À toi de jouer

Écrire un programme qui demande l'âge de l'utilisateur, puis affiche « Tu es au collège » si l'âge est compris entre $11$ et $15$ (bornes incluses), et « Tu n'es pas au collège » sinon.

Corrigé

On utilise un bloc si … alors … sinon avec une condition combinée par l'opérateur et : la condition n'est vraie que si les deux comparaisons sont vraies en même temps.

Programme Scratch demandant l'âge et testant avec deux comparaisons combinées par et logique si l'âge est compris entre 11 et 15 inclus

Les comparaisons utilisées sont $age > 10$ (équivaut à $age \geq 11$ pour des entiers) et $age < 16$ (équivaut à $age \leq 15$). On peut aussi écrire $age \geq 11$ et $age \leq 15$ avec les opérateurs « supérieur ou égal » et « inférieur ou égal » si on les trouve, mais ils ne sont pas dans la palette de base de Scratch — il faut alors les construire à la main.

Projet : Tu es au collège .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Astuce

Projet tout-en-un — Le fichier ci-dessous regroupe les programmes du tuto : annonce « Bravo ! » (drapeau vert), pair ou impair (touche p), polygone validé (touche f — Scratch demande alors le nombre de côtés au clavier ; taper $2$ déclenche le refus, taper $5$ trace un pentagone). Ouvrir le projet dans Scratch avec Fichier > Importer depuis votre ordinateur.

Projet tout-en-un .sb3
?
Ouvre-le dans Scratch en ligne via Fichier → Importer depuis votre ordinateur.

Remarque

Le bloc nombre aléatoire entre … et … utilisé dans l'exemple « pair ou impair » mérite un tuto à lui tout seul : c'est le sujet du prochain chapitre, Le hasard en Scratch, où l'on simule des dés, des pièces et où l'on étudie les fréquences d'apparition (lien avec les probabilités de 4e).