arduino
Boucles
Recherche…
Syntaxe
- pour (déclaration, condition, itération) {}
- while (condition) {}
- do {} while (condition)
Remarques
General Remark
Si vous avez l'intention de créer une boucle pour attendre que quelque chose se produise, vous êtes probablement sur la mauvaise voie ici. Rappelez-vous plutôt que tout le code après setup () est exécuté à partir d’une méthode appelée loop (). Donc, si vous avez besoin d'attendre quelque chose, c'est plus facile de ne rien faire (ou seulement d'autres choses indépendantes) et de revenir pour vérifier la condition d'attente la prochaine fois.
do { } while(condition)
n'évaluera pas l'instruction de condition avant la première itération. Il est important de garder cela à l’esprit si la déclaration de condition a des effets secondaires.
Tandis que
Une while
boucle évaluera son état, et si true
, il exécutera le code à l' intérieur et recommencer. Autrement dit, tant que sa condition est évaluée à true
, le while
en boucle exécutera plus et plus.
Cette boucle sera exécutée 100 fois, en ajoutant chaque fois 1 à la variable num
:
int num = 0;
while (num < 100) {
// do something
num++;
}
La boucle ci-dessus est équivalente à une boucle for
:
for (int i = 0; i < 100; i++) {
// do something
}
Cette boucle s'exécutera pour toujours:
while (true) {
// do something
}
La boucle ci-dessus est équivalente à une boucle for
:
for (;;) {
// do something
}
Pour
for
les boucles sont syntaxe simplifiée pour une configuration de boucle très fréquent, ce qui pourrait être accompli en plusieurs lignes avec un while
boucle.
Voici un exemple courant de boucle for
, qui s'exécutera 100 fois puis s'arrêtera.
for (int i = 0; i < 100; i++) {
// do something
}
Cela équivaut à une while
boucle:
int num = 0;
while (num < 100) {
// do something
num++;
}
Vous pouvez créer une boucle sans fin en omettant la condition.
for (;;) {
// do something
}
Cela équivaut à une while
boucle:
while (true) {
// do something
}
Faire pendant
A do while
boucle est le même que while
la boucle, sauf qu'il est garanti d'exécuter au moins une fois.
La boucle suivante sera exécutée 100 fois.
int i = 0;
do {
i++;
} while (i < 100);
Une boucle similaire, mais avec une condition différente, exécutera 1 fois.
int i = 0;
do {
i++;
} while (i < 0);
Si la boucle au- dessus était simplement un while
boucle, il exécute 0 fois, parce que la condition évaluerait à false
avant la première itération. Mais comme il s'agit d'une boucle do while
while, elle s'exécute une fois, puis vérifie sa condition avant de l'exécuter à nouveau.
Contrôle de flux
Il existe des moyens de briser ou de modifier le flux d'une boucle.
break;
quittera la boucle en cours et n'exécutera plus de lignes dans cette boucle.
continue;
n'exécutera plus de code dans l'itération courante de la boucle, mais restera dans la boucle.
La boucle suivante exécutera 101 fois (i = 0, 1, ..., 100) au lieu de 1000 en raison de l'instruction break
:
for (int i = 0; i < 1000; i++) {
// execute this repeatedly with i = 0, 1, 2, ...
if (i >= 100) {
break;
}
}
La boucle suivante aura pour résultat que la valeur de j
sera 50 au lieu de 100, à cause de l'instruction continue
:
int j=0;
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) { // if `i` is even
continue;
}
j++;
}
// j has the value 50 now.