Ver índice
La instrucción continue

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


La instrucción continue

Si la instrucción break permite interrumpir el desarrollo de un bucle, mediante continue se puede impedir que, bajo unas condiciones determinadas, se ejecuten algunas o todas las instrucciones de un bucle sin que por ello se interrumpa la ejecución de las iteraciones siguientes. Esta instrucción es aplicable tanto a bucles for como a los de tipo while o do while.

Seguramente los ejemplos nos ayudarán a aclarar un poco más la idea. En este primer ejemplo (un bucle for) tiene como condición(if): $i % 2 == 0 que, como recordarás, significa que el resto de la división de $i entre dos($i % 2) sea igual (==) a cero.

En este supuesto (condición de múltiplo de dos) se activará la opción continue y por lo tanto en esa iteración no se ejecuta la instrucción echo y en consecuencia no se imprimirán en pantalla los múltiplos de 2.

<?php
for ($i=0;$i<=10;$i++){

           #condición de  múltiplo de 2
	if ($i % 2 ==0 ) {
           continue ;
          }

	echo "La variable I vale ",$i,"<br>";
}
   ?>
ejemplo71.php

Este otro ejemplo (caso de bucle while) la condición establecida para que se ejecute continue es que el valor de la variable no sea múltiplo de tres, en cuyo caso echo sólo imprimirá los múltiplos de 3.

<?php
$i = 0;
while ($i++ < 14) {

     #condición de no múltiplo de 3 usando para distinto la sintaxis !=

    if ($i % 3 !=0){
            continue ;
    }

    echo "El valor de i es: ",$i,"<br>";
}

  ?>

ejemplo72.php

En este nuevo ejemplo utilzaremos un bucle do ... while para presentar en pantalla los múltiplos de 11.

<?php
$i = 0;
do {

      # condición de no múltiplo de 11. fíjate en la sintaxis alternativa
	# observa que aquí distinto lo hemos escrito <>

    if ($i % 11 <>0 ){
            continue ;
    }

    echo "El valor de i es: ",$i,"<br>";

}while ($i++ < 100)
?> 

ejemplo73.php

La instrucción continue n

La instrucción continue puede utilizar un parámetro n con valor entero positivo que, cuando no se indica de forma expresa, toma por defecto el valor 1. La idea es la siguiente. Cuando tenemos bucles anidados el intérprete de PHP los considera numerados correlativamentede dentro hacia fuera– a partir de UNO.

Cuando se ejecuta continue n se redirecciona la iteración al bucle cuyo número coincide con el valor de n. Obviamente, el valor de n no puede ser nunca mayor que el número de bucles anidados en el script.

Analicemos algunos ejemplos. En este caso el bucle for sería el número UNO y el while sería el número DOS. Cuando se cumpla la condición que activa continue 2 ($i=3) se redirecciona la iteración al paso siguiente de while (bucle número DOS).

<?php
$j=0;
while (++$j <5) {
	for($i=1;$i<5;$i++){

		if ($i==3){
                  continue 2;
                   }
             echo "El valor de j es: ",$j, " y el de i es: ",$i,"<br>";


	}
}
?> 
Caso continue 1 Caso continue 2

En este otro ejemplo hemos anidado a tres niveles y hemos escrito continue 3, aunque a la hora de ejecutar los ejemplos podrás ver las tres variantes posibles de ese script modificando los valores de continue n.

<?php
$j=0;$k=0;
do {  //n=3
     while (++$j <=5) { // n=2
	for($i=1;$i<=5;$i++){  // n=1
	    if ($i==2){continue 3;}
            echo "El valor de k es: ",$k," y el valor de j es: ",$j, " y el de i es: ",$i,"<br>";
	}
     }
}while ($k++ <=5);
?> 

Caso continue 1 Caso continue 2 Caso continue 3