Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : C - les ruptures de séquence dans une itération
(Article écrit par Chorizo Kid et extrait d'A-News (Amiga News) - octobre 1988)
|
|
De l'agissement de la saucisse Herta au sein d'une boucle itérative.
Nous rappelons d'ailleurs que Herta est une marque déposée non encore interdite d'emploi par Commodore France. Nous rappelons
également que Commodore France n'est pas une marque déposée par Herta qui se fout totalement des ordinateurs n'ayant toujours
pas réussi les mettre sous cellophane. J'embraye donc.
Les ruptures de séquence dans une itération
"continue" fait passer à l'itération suivante d'une boucle.
"break" fait sortir d'un niveau de boucle.
Reprenons l'exemple du mois dernier :
Après avoir initialisé notre vecteur, nous calculions la somme des composantes de ce vecteur. Nous avons rajouté le test
if(t[indice]<0) continue;. Avant d'ajourer "t[indice]" à "somme", nous testons si "t[indice]" est négatif.
Si c'est le cas, on effectue un "continue", c'est-à-dire que nous passons directement à l'itération suivante (indice suivant).
Nous avons donc sauté la suite de la boucle "somme+=t[indice];". Ceci nous permet en fait de calculer la somme des termes
positifs du vecteur "t[]".
De même, si maintenant nous remplaçons le "continue" par un "break" :
Le calcul de la somme va maintenant s'arrêter dès que l'on va rencontrer un nombre négatif. En effet, avant le calcul de la
somme "somme+=t[indice]" on teste là encore si "t[indice]" est négatif, et si c'est vrai, on exécute le "break", c'est-à-dire
que nous allons directement sortir de la boucle dans laquelle nous nous trouvons pour passer l'instruction suivant la boucle,
ici printf("La somme vaut %i\n",somme);.
Si tous les nombres sont positifs, la boucle se terminera normalement à "indice=rang".
Un "break" permet de sortir d'un niveau de boucle.
Si dans la deuxième boucle (la plus imbriquée), le test du "if" est vrai et que l'on exécute le "break", on va sortir de cette
boucle (sans exécuter "instruction1", mais on va rester dans la première boucle, donc exécuter "instruction2". Après cela,
on passera l'itération suivante dans la boucle 1, puis on entrera nouveau dans la boucle 2, etc.
Nous pouvons alors réécrire notre dernier exemple (break) de la façon suivante :
Nous faisons la somme des composantes de "t[]" tant que "indice" est inférieur à "rang" (on n'est pas à la fin du tableau)
et que "t[indice]" est positif. Dès que l'une de ces deux conditions n'est plus respectée on sort de la boucle.
Enfin, vous notez comment on emploie la condition "ET" (AND) notée cn "C&&". La condition "OU" est notée ||.
Ceci clôt le chapitre sur les itérations.
|