Comparaison "while"/"do...while"
[1]
1
i = 7
i = 7
Voici le programme n°1 :
1
#include "constantes.h"
2
int i,n;
3
4
// La fonction setup est appelée une fois au démarrage
5
void setup() {
6
pinMode(PORT_LED, OUTPUT);
7
Serial.begin(9600);//Initialise le port série (pour l'affichage dans la fenêtre Moniteur)
8
i = 6;
9
n = 5;
10
while(i < n){
11
digitalWrite(PORT_LED, ALLUME); // Allume la LED
12
delay(1000); // Attente d'une seconde
13
digitalWrite(PORT_LED, ETEINT); // Eteint la LED
14
delay(1000); // Attente d'une seconde
15
i++;
16
Serial.print("i = ");
17
Serial.println(i);
18
}
19
}
20
void loop() {
21
}
#include "constantes.h" int i,n; // La fonction setup est appelée une fois au démarrage void setup() { pinMode(PORT_LED, OUTPUT); Serial.begin(9600);//Initialise le port série (pour l'affichage dans la fenêtre Moniteur) i = 6; n = 5; while(i < n){ digitalWrite(PORT_LED, ALLUME); // Allume la LED delay(1000); // Attente d'une seconde digitalWrite(PORT_LED, ETEINT); // Eteint la LED delay(1000); // Attente d'une seconde i++; Serial.print("i = "); Serial.println(i); } } void loop() { }
et le programme n°2 :
1
#include "constantes.h"
2
int i,n;
3
4
// La fonction setup est appelée une fois au démarrage
5
void setup() {
6
pinMode(PORT_LED, OUTPUT);
7
Serial.begin(9600);//Initialise le port série (pour l'affichage dans la fenêtre Moniteur)
8
i = 6;
9
n = 5;
10
do{
11
digitalWrite(PORT_LED, ALLUME); // Allume la LED
12
delay(1000); // Attente d'une seconde
13
digitalWrite(PORT_LED, ETEINT); // Eteint la LED
14
delay(1000); // Attente d'une seconde
15
i++;
16
Serial.print("i = ");
17
Serial.println(i);
18
} while(i < n);
19
}
20
void loop() {
21
}
#include "constantes.h" int i,n; // La fonction setup est appelée une fois au démarrage void setup() { pinMode(PORT_LED, OUTPUT); Serial.begin(9600);//Initialise le port série (pour l'affichage dans la fenêtre Moniteur) i = 6; n = 5; do{ digitalWrite(PORT_LED, ALLUME); // Allume la LED delay(1000); // Attente d'une seconde digitalWrite(PORT_LED, ETEINT); // Eteint la LED delay(1000); // Attente d'une seconde i++; Serial.print("i = "); Serial.println(i); } while(i < n); } void loop() { }
Le fichier d’entête (le même pour les deux programmes)
1
/* Principaux réglages (fichier constantes.h) */
2
3
#define PORT_LED 4
4
#define ALLUME 1
5
#define ETEINT 0
/* Principaux réglages (fichier constantes.h) */ #define PORT_LED 4 #define ALLUME 1 #define ETEINT 0
Lequel de ces deux programmes, ou peut-être les deux, est à l'origine de ce résultat ?
Votre choixChoix attenduRéponse