miércoles, 20 de agosto de 2014

PHP (01) Control de flujo (09): break y continue

Llegamos ya a la parte final del control de flujo en php, aunque este tema en realidad se puede considerar que vale para muchos otros lenguajes de programación ya que el funcionamiento básico es el mismo en todos.

Terminación Prematura de Códigos
Como ya hemos visto en el switch esto se realiza con la palabra reservada break, la cual se utiliza para romper la ejecución de los bucles, y no solo los ya mencionados switch si no cualquier otro, como podemos ver en el siguiente ejemplo.
for ($i=0; $i<10000; $i++){
 echo ('voy a dar vueltas a menos que me pares!!!![br/]');
 if ($i == 10){
  echo ('has sido detenido!!!!');
  break;
 }
}

Como podemos ver el contador estaría dando vueltas hasta las diez mil vueltas, pero dentro del bucle for hay un if que impone la condición de que si $i es igual a 10, (recuerda que en las comparaciones igual es ==), entonces cambie el mensaje y rompa el bucle...
De este modo se pueden detener todos lo bucles que queramos y aunque no es algo muy comun si es interesante saber que podemos hacerlo.

Omisión de Iteraciones
Un caso aun más peculiar si cabe es este, el cual utiliza la palabra continue. Un ejemplo claro de su utilización puede ser al estar haciendo cálculos matemáticos que pueden dar indeterminaciones o números extraños, como por ejemplo una división entre cero, en cuyo caso se le introduce una condición y podemos saltarnos la iteración problemática del bucle.
for ($i=-5; $i<5; $i++){
 if ($i == 0){
  continue;
 }
 echo "1/$i" . 1/$i . '[br]';
}

Puedes ver que en esta división, cuando el denominador es cero se cumple la condición del if, y en ese caso salta el continue que evita que se realice la operación del echo.

Nota: si quieres ver estos códigos embebidos en un archivo html, pincha aquí y puedes verlo en mi github.

No hay comentarios:

Publicar un comentario