Je trouvais ça triste d'écrire un chapitre sur les boucles sans s'amuser un peu avec. Et pour cela je vous ai préparé un petit exercice sympathique et qui se révélera utile :
Vous souhaitez que la fenêtre de sortie vous affiche une fois
"No problemo", une fois
"Aïe caramba" et cela de façon alternée une vingtaine de fois :
Code : Actionscript | No Problemo
Aïe Caramba
No Problemo
Aïe Caramba
...
|
Comment faire ?
Avant de regarder les solutions, cherchez un peu.
Il existe des dizaines de façons de répondre à cet exercice.
Moi j'ai décidé d'utiliser une boucle for dans les deux solutions que je vous propose.
La première solution
C'est la plus logique et la plus facile à comprendre.
Code : Actionscript | var machaine:String = "No Problemo";
for (var monnombre:Number = 20; monnombre>0; monnombre--) {
machaine = (machaine=="No Problemo") ? "Aïe Caramba" : "No Problemo";
trace(machaine);
}
|
On déclare la variable
machaine et on lui affecte la valeur
"No Problemo".
Ensuite dans une boucle
for qui va s'exécuter 20 fois, je place une condition avec structure ternaire histoire de gagner de la place

(et de vous faire réviser la précédente leçon

).
Code : Actionscript | Si machaine vaut "No Problemo", alors on lui affecte la valeur "Aïe Caramba"
Si machaine ne vaut pas "No Problemo", alors on lui affecte la valeur "No Problemo"
|
Et puisqu'il n'y a que deux possibilités de valeur, ça fonctionne très bien.
La seconde solution
Plus "mathématique", mais aussi plus courte, voici la seconde solution :
Code : Actionscript | var machaine:String;
for (var monnombre:Number = 20; monnombre>0; monnombre--) {
machaine = (monnombre%2 == 1) ? "No Problemo" : "Aïe Caramba";
trace(machaine);
}
|
On utilise ici les modulos.
On déclare une chaîne de caractères vide :
machaine
Et dans une boucle répétée 20 fois, on va utiliser les modulos.
Rappel : le modulo est un opérateur qui retourne le reste de la division euclidienne de deux nombres. Il est représenté par le signe %
Par exemple : 10%4 = 2 car quand vous divisez 10 par 4 il reste 2 !
Il faut savoir que la division euclidienne de n'importe quel nombre entier (sans virgule si vous préférez) par 2 ne donnera que deux restes possibles :
0 ou
1.
Code : Actionscript | SI reste de la division de monnombre par 2 VAUT 1 ALORS machaine DEVIENT "No Problemo"
SI reste de la division de monnombre par 2 NE VAUT PAS 1 ALORS machaine DEVIENT "Aïe Caramba"
|
J'ai décidé pour que le code soit plus clair de passer encore une fois par la variable
machaine.
Cela dit, elle n'est pas obligatoire avec la solution des modulos. On aurait pu mettre directement la condition dans la fonction trace et on aurait gagné 3 lignes.
Code : Actionscript | for (var monnombre:Number = 20; monnombre>0; monnombre--) {
trace((monnombre%2 == 1) ? "No Problemo" : "Aïe Caramba");
}
|
J'espère que vous avez trouvé ce petit exercice sympathique. Sachez que pouvoir de façon simple échanger deux valeurs dans une variable se révèle souvent très utile, par exemple pour colorier de couleurs différentes une ligne sur deux d'un tableau.
