Omet navegació

8) Sentencies de control. For

For ( Per a )

Anem a veure com utilitzar la sentencia FOR per repetir un grup de sentències un número especificat de vegades.

Fes el muntatge:

3Leds

Ara prova el programa

int pinLed = 10;
int pinLed2 = 11;
int pinLed3 = 12;

void setup() {
  pinMode(pinLed, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  pinMode(pinLed3, OUTPUT);
    Serial.println("Els leds del pins 10, 11 , 12 són eixides");

}

void loop() { // Comença un bucle
    Serial.println("Engeguem el led del pin 10");
    digitalWrite(pinLed, HIGH);
    delay(1000);
    Serial.println("Aturem el led del pin 10");
    digitalWrite(pinLed, LOW);
    delay(1000);
    Serial.println("Engeguem el led del pin 11");
    digitalWrite(pinLed2, HIGH);
    delay(1000);
    Serial.println("Aturem el led del pin 11");
    digitalWrite(pinLed2, LOW);
    delay(1000);
    Serial.println("Engeguem el led del pin 12");
    digitalWrite(pinLed3, HIGH);
    delay(1000);
    Serial.println("Aturem el led del pin 12");
    digitalWrite(pinLed3, LOW);
    delay(1000);
    
exit(0); //Ix del bucle acabant el programa
}// Crida un bucle nou

Fixa't que la sentència exit(0)  trenca el bucle infinit loop i acaba el programa.

El següent programa fet amb Blockly@rduino és equivalent:

1-Bucle programa

Si esborrem exit(o) el programa s'executa infinites vegades, però si volem que el programa s'execute 10 , 15 o n negades ens cal posar  el grup de sentències a repetir dins d'un FOR com es mostra a continuació.

for (inicialització; condició; increment) {
  // sentències a repetir;
}


Mira el exemple d'abans ara.

int pinLed = 10;
int pinLed2 = 11;
int pinLed3 = 12;

void setup() {
  pinMode(pinLed, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  pinMode(pinLed3, OUTPUT);
    Serial.println("Els leds del pins 10, 11 , 12 són eixides");

}

void loop() { // Comença un bucle
  
    for (int i = 0; i <= 4; i++) { //Repetim 5 vegades al programa
    Serial.println("Engeguem el led del pin 10");
    digitalWrite(pinLed, HIGH);
    delay(1000);
    Serial.println("Aturem el led del pin 10");
    digitalWrite(pinLed, LOW);
    delay(1000);
    Serial.println("Engeguem el led del pin 11");
    digitalWrite(pinLed2, HIGH);
    delay(1000);
    Serial.println("Aturem el led del pin 11");
    digitalWrite(pinLed2, LOW);
    delay(1000);
    Serial.println("Engeguem el led del pin 12");
    digitalWrite(pinLed3, HIGH);
    delay(1000);
    Serial.println("Aturem el led del pin 12");
    digitalWrite(pinLed3, LOW);
    delay(1000);
     }// final del for
     
exit(0); //Ix del bucle acabant el programa
}// Crida un bucle nou

Fixa't que el FOR comença amb i=0 i s'executa augmentant i als valors 1, 2, 3, i 4

El següent programa fet amb Blockly@rduino és equivalent:

For Programa