Diferencia entre revisiones de «for»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo 3)
(Ejemplo 4)
 
(No se muestra una edición intermedia del mismo usuario)
Línea 72: Línea 72:
  
 
== Ejemplo 4 ==
 
== Ejemplo 4 ==
Error de novato. Como ya sabes [[byte]] soporta valores entre 0 y 254. Asi que '''siempre''' se cumplira la condicion n<255 y este for nunca terminara.
+
Error de novato. Como ya sabes [[byte]] soporta valores entre 0 y 255. Asi que '''siempre''' se cumplira la condicion n<256 y este for nunca terminara.
  
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
void setup(){
 
void setup(){
 
   Serial.begin(9600);
 
   Serial.begin(9600);
   for (byte n=0; n<255; n++){
+
   for (byte n=0; n<256; n++){
 
       Seral.println(n);
 
       Seral.println(n);
 
   }
 
   }
 
}
 
}
 +
void loop(){
 +
  //Nada
 +
}
 +
</syntaxhighlight>
 +
 +
== Ejemplo 5 ==
 +
En matemáticas, la sucesión o serie de '''Fibonacci''' es la siguiente sucesión infinita de números naturales: 0,1,1,2,3,5,8,13,21,34,55,89,144..
 +
 +
<syntaxhighlight lang="c++">
 +
byte s[13] ;
 +
 +
void setup(){
 +
  Serial.begin(9600);
 +
  for (byte n=0; n<13; n++) {
 +
      if (n==0 || n==1) {
 +
        s[0]=0;
 +
        s[1]=1;
 +
      }else{
 +
        s[n] = s[n-1]+s[n-2];
 +
      }
 +
      Serial.println(s[n]);
 +
  }
 +
}
 +
 
void loop(){
 
void loop(){
 
   //Nada
 
   //Nada

Revisión actual del 21:29 6 jun 2020

Descripción

La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un número determinado de veces. Cada vez que se ejecutan las instrucciones del bucle se vuelve a comprobar la condición.

Nota: Se usa para cuando tu sabes de antemano cuantas veces debes repetir el bucle.


Sintaxis

for (declaracion-initialization;  condicion;  incremento) { 
   //instrucción(es); 
}

Parametros

declaracion-initialization
declaración e inicialización de variables a utilizar en el ciclo.
condicion
condicional que debe cumplir desde el principio
incremento
incremento o decremento. Son un conjunto de instrucciones (separadas por coma , ) que se ejecutan cada vez que se completa una iteración del ciclo. A diferencia de la condición, esta parte nunca ocurre la primera vez.

Nota: Todos los parámetros se pueden omitir (sin embargo los dos ; siguen siendo obligatorios), pero si se omite la condición, esta siempre se asumirá verdadera; lo que resultaría en un bucle infinito hasta encontrarse con una sentencia break.


Advertencias

Nada.

Ejemplo 1

En este ejemplo conectamos un LED en un pin digital PWM y hacemos variar iluminacion con analogWrite().

const byte pin = 10;   //LED
void setup() { 
   pinMode(pin, OUTPUT);
} 
void loop(){
   for (byte i=0; i<=255; i++){ 
      analogWrite(pin, i);  //PWM
      delay(100); 
   } 
}

Ejemplo 2

Revisa este curioso ejemplo donde no hay el 3er termino en el for() que normalmente incrementa la variable.

void setup(){
   Serial.begin(9600);
   for (unsigned long start=millis(); millis()-start<1000;){ 
      Serial.println(start);
   }
}
 
void loop(){
   //Nada
}

Ejemplo 3

En este ejemplo es el break quien termina el ciclo for.

void setup(){
   Serial.begin(9600);
   for (byte n=0; n<254; n++){
      Seral.println(n);
      if (n>10){
         break;
      }
   }
}
void loop(){
   //Nada
}

Ejemplo 4

Error de novato. Como ya sabes byte soporta valores entre 0 y 255. Asi que siempre se cumplira la condicion n<256 y este for nunca terminara.

void setup(){
   Serial.begin(9600);
   for (byte n=0; n<256; n++){
      Seral.println(n);
   }
}
void loop(){
   //Nada
}

Ejemplo 5

En matemáticas, la sucesión o serie de Fibonacci es la siguiente sucesión infinita de números naturales: 0,1,1,2,3,5,8,13,21,34,55,89,144..

byte s[13] ;

void setup(){
   Serial.begin(9600);
   for (byte n=0; n<13; n++) {
      if (n==0 || n==1) {
         s[0]=0;
         s[1]=1;
      }else{ 
         s[n] = s[n-1]+s[n-2]; 
      }
      Serial.println(s[n]);
   }
}

void loop(){
   //Nada
}

Vea también


Referencias externas