Comparaison "while"/"do...while"
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émarrage5
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émarrage5
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 44
#define ALLUME 15
#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 ?
