Guido, au travail!

Tutoriel

L'instruction do permet à Guido de répéter une action plusieurs fois, mais elle a une limitation importante : vous devez savoir à l'avance combien de fois cette action devra être exécutée. Si vous vous trouvez à une intersection et que vous devez ramasser plusieurs sonnettes sans savoir à l'avance combien il y en a, vous ne pouvez pas utiliser une instruction do. La commande while est là pour palier cet inconvénient.

La forme générale d'une instruction while est :

while <test>:
    actions

où <test> doit être vrai et où actions est soit une simple commande (comme move), soit une séquence de commandes regroupées dans un bloc. Tant que la condition testée reste vraie, les actions seront exécutées. De la sorte, while est similaire à do à la différence que do spécifie un nombre d'exécutions alors que while spécifie une condition. Tant que le test est vrai, les instructions sont exécutées.

Par exemple, pour ramasser une pile de sonnettes, vous pourriez écrire :

while next-to-a-beeper:
    pickbeeper

Ceci indique que tant qu'il reste des sonnettes à l'intersection où se trouve Guido, il faut en ramasser une et refaire le test. Le résultat sera qu'il ne restera plus aucune sonnette sur l'intersection courante. Elle seront toutes dans le sac à sonnettes de Guido.

Écrire une boucle while peut s'avérer compliqué ; il y a beaucoup de détails à régler. Le principe général est le suivant :

  1. Identifier la condition qui doit être vraie quand Guido a terminé la boucle.
  2. Construisez votre boucle avec le test opposé à celui avec lequel vous voudriez terminer :
  3. Assurez vous que le test de boucle devient faux de façon qu'on puisse sortir de la boucle.
  4. Faites particulièrement attention aux boucles infinies, c'est-à-dire les boucles dont on ne sort jamais.

À votre tour

récrivez le programme deuxieme_rue en utilisant une boucle while: à la place d'une boucle do: de manière à ce que le programme puisse fonctionner avec n'importe quelle longueur de rue et n'importe quel nombre de sonnettes.

Ouvrez les mondes 'deuxieme_rue2.wld' et 'deuxieme_rue3.wld' et testez le programme sur ces rues

Enregistrez le programme.

Appelez un professeur pour valider votre code

Précédent | Index | Suivant

Copyright © 2003 Roger Frank.