Les structures de contrôle

Mardi 31 janvier 2006, par Pierre Couillard // NQC : Not Quite C

Dans les articles précédents, nous avons vu la répétition et la déclaration while. Ce type de déclarations “contrôle” la possibilité que d’autres déclarations dans le programme soient exécutées. Elles sont appelés “des structures de contrôle”. Nous verrons ici quelques autres structures de contrôle que nous pouvons utiliser dans NQC.

La déclaration SI

Parfois, vous souhaitez qu’une partie particulière de votre programme soit exécutée seulement dans certaines situations particulières. Dans ce cas, la déclaration if peut être employée. Nous changerons de nouveau le programme sur lequel nous avons travaillé jusqu’ici, mais avec une nouvelle modification. Nous voulons que le robot roule le long d’une ligne droite et ensuite ou bien fasse un virage à gauche ou bien à droite. Afin de réaliser cela, nous avons de nouveau besoin de nombres aléatoires. Nous choisirons un nombre aléatoire entre 0 et 1, c’est-à-dire il est ou bien 0 ou bien 1. Si le nombre est 0 nous tournons à droite ; autrement nous tournons à gauche. Voici le programme :

La déclaration if fonctionne un peu comme la déclaration while. Si la condition entre les parenthèses est vraie, la partie entre les parenthèses est exécutée. Autrement, la partie entre les parenthèses après le mot est else exécutée. Jetons un coup d’oeil sur la condition que nous employons. Il lit random(1) == 0. Cela signifie que random(1) doit être égal à 0 pour rendre la condition vraie. Vous pourriez vous demander pourquoi nous employons == plutôt que =. La raison : c’est pour le distinguer de la déclaration qui met une valeur dans une variable. Vous pouvez comparer des valeurs de différentes façons. Voici les plus importants :

<table style="text-align: center; width: 50%;" border="1" cellpadding="2" cellspacing="2"><td style="text-align: center;"><span style="font-weight: bold;">Symbole

<td
style="text-align: center;"><span
style="font-weight: bold;">Signification

<td style="text-align: center;">==égal à<td style="text-align: center;">< plus petit que<td style="text-align: center;"><= plus petit ou égal à<td style="text-align: center;">>plus grand que<td style="text-align: center;">>=plus grand ou égal à<td style="text-align: center;"> !=non égal à

Vous pouvez combiner l’utilisation de conditions “&&”, ce qui signifie “et”, ou “||”, ce qui signifie “ou”. Voici quelques exemples de conditions :

<table style="width: 50%; text-align: left; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="2"><td style="text-align: center;"><span style="font-weight: bold;">Symbole

<td
style="text-align: center;"><span
style="font-weight: bold;">Signification

<td style="text-align: center;">true

<td
style="text-align: center;">toujours vrai

<td style="text-align: center;">false

<td
style="text-align: center;">faux, jamais vrai

Notez que la déclaration if a deux parties. La partie immédiatement après la condition, qui est exécutée quand la condition est vraie et la partie après else, qui est exécutée quand la condition est fausse. Le mot-clé else (autrement) et la partie après sont facultatifs. Donc, vous pouvez les laisser tombre s’il n’y a rien pour faire quand la condition est fausse.

La déclaration DO

Il y a une autre structure de contrôle, la déclaration DO. Il a la forme suivante :

Ceci signifie tout simplement :

Les déclarations entre parenthèses après le do sont exécutées tant que la condition est vraie. La condition a la même forme que la déclaration décrite if ci-dessus. Voici un exemple d’un programme : le robot se déplace aléatoirement pendant 20 secondes et ensuite s’arrête.

Notez, dans cet exemple, que nous avons placé deux déclarations sur une ligne. Ceci est permis. Vous pouvez placer autant de déclarations sur une ligne que vous estimez nécessaire (tant qu’il y a des points-virgules au milieu). Mais pour la lisibilité du programme ce n’est pas souvent une bonne idée. Notez aussi que la déclaration do se comporte presque de la même façon que la déclaration while. Mais dans la déclaration while la condition est évaluée avant l’exécution des déclarations, tandis que dans la déclaration do la condition est évaluée à la fin. Pour la déclaration tant que, les déclarations pourraient ne jamais être exécutées, mais pour la déclaration faire elles sont exécutés au moins une fois.

En résumé...

Dans cet article, nous avons vu deux nouvelles structures de contrôle : la déclaration if et la déclaration do. Ensemble avec la déclaration de répétition et la déclaration while, elles sont des déclarations qui contrôlent la façon dans laquelle le programme est exécuté. Il est très important que vous compreniez ce qu’elles font. Essayez un peu plus d’exemples vous-même avant de continuer. Nous avons aussi vu que nous pouvions placer des déclarations multiples sur une ligne.