Diferencia entre revisiones de «for»
(→Ejemplo 1) |
(→Ejemplo 4) |
||
(No se muestran 7 ediciones intermedias del mismo usuario) | |||
Línea 22: | Línea 22: | ||
== Ejemplo 1 == | == Ejemplo 1 == | ||
+ | En este ejemplo conectamos un LED en un pin digital PWM y hacemos variar iluminacion con [[analogWrite()]]. | ||
+ | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
const byte pin = 10; //LED | const byte pin = 10; //LED | ||
Línea 36: | Línea 38: | ||
== Ejemplo 2 == | == Ejemplo 2 == | ||
+ | Revisa este curioso ejemplo donde no hay el 3er termino en el for() que normalmente incrementa la variable. | ||
+ | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
− | <syntaxhighlight> | + | void setup(){ |
+ | Serial.begin(9600); | ||
+ | for (unsigned long start=millis(); millis()-start<1000;){ | ||
+ | Serial.println(start); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | //Nada | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Ejemplo 3 == | ||
+ | En este ejemplo es el [[break]] quien termina el ciclo for. | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | for (byte n=0; n<254; n++){ | ||
+ | Seral.println(n); | ||
+ | if (n>10){ | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | void loop(){ | ||
+ | //Nada | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == 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. | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | for (byte n=0; n<256; 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(){ | ||
+ | //Nada | ||
+ | } | ||
+ | </syntaxhighlight> | ||
== Vea también == | == Vea también == | ||
− | + | <categorytree mode=all>Estructura control</categorytree> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Referencias externas == | == Referencias externas == |
Revisión actual del 21:29 6 jun 2020
Contenido
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
- Guia de referencia de Arduino
- Estructuras de control - Enrique Crespo