Buscador

jueves, 16 de enero de 2014

-- Tutorial de Arduino desde 0 -- Tutorial 09; Estructuras de control Switch case + break + continue






Switch  case:

En esta entrada, explicaré la estructura de control  switch case. Es muy útil cuando tenemos una gran cantidad de posibilidades y queremos que haga algo si encaja con una de ellas ( o que haga algo si no es ninguna de ellas).

int variable = 2;

switch ( variable )
{
 case 0:
 Serial.println("variable vale 0");
 break;

 case 1:
 Serial.println("variable vale 1");
 break;

 case 2:
 Serial.println("variable vale 2");
 break;

 default:
 Serial.println("variable no vale ni 0 ni 1 ni 2");
 break;
}



En caso de que el valo entero sea 0 , ocurrirá lo que hay en case 0: y  asi con el resto de numeros. El default se usa cuando ninguna de las condiciones del switch se cumplió.




break:

Lo que hace esta instrucción es " romper " donde esté, eso quiere decir que , dentro del bucle  o estructura de control donde esté break ( sea más de uno), lo de abajo no se ejecutará  ( no se ejecutará lo que esté dentro de ese bucle o estructura de control, pero lo que esté fuera de ese bucle o estructura de control sí que se ejecutará).




Veamos un ejemplo:


void setup()
{
Serial.begin(9600);
int i;

for(i = 0; i < 10 ; i++)
   {
       if(i == 5)
       {
         break;  // sale del  if y del bucle for
       }
       
       // cosas que cuando i == 5 no se ejecutarán
   }
    
    Serial.print(" variable i  ha salido al ser 5, variable vale: ");
    Serial.println(i);  
}

void loop()
{
}





Continue:

La instrucción continue, lo que hace es:  En el punto donde esté la instrucción continue, el programa volverá  de nuevo al inicio del bucle, saltándose la parte que tenga continue por abajo ( pero no sale del bucle ). Pondré un ejemplo para que se vea más claro; imaginemos que queremos hacer un contador que cuente del 0 al 9 y si aparece el número 2 , no lo imprima:

void setup()
{
Serial.begin(9600);

      for(int i = 0; i < 10 ; i++)
      {       
             if(i==2)
             {
               // como no imprimo nada por pantalla, no me mostrará nada
               continue;
               Serial.println("A mi ya no me imprime, porque estoy debajo el continue; y volverá a subir");
             }
             
        Serial.print("Variable vale: "); 
        Serial.println(i);
      }
      Serial.println("Fin del for!");
}


void loop()
{
}


Nos devolverá algo como esto:



Como podemos ver, el numero 2 no lo imprimió. ¿Por qué? porque entró dentro del  if( i == 2), entonces se encontró con la instrucción continue y volvió a subir arriba, saltándose la impresión del 2.

 Si pusiéramos el continue como un comentario ( asi:  // continue;  )  veremos que sí nos imprime el número 2.

Podríamos decir que la instrucción continue hace que el bucle se piense que ha llegado al final y toca subir de nuevo. (La i++ está arriba, por lo tanto, hasta que no vuelva a subir, no incrementará )



Y esto es todo por esta entrada. Practicad mucho y nos vemos!



0 comentarios:

Publicar un comentario

-