Operador continue

La sentencia continue rompe la iteración actual del bucle más interno que contiene continue e inicia la siguiente iteración. La sentencia sólo puede utilizarse dentro de los bucles for, while y do. La ejecución de continue dentro de for da lugar al siguiente cálculo de la expresión en el encabezado del bucle (incremento/decremento de la variable del bucle), tras lo cual se comprueba la condición de continuación del bucle. Ejecutando continue dentro de while o do se comprueba inmediatamente la condición en el encabezado del bucle.

La sentencia consta de la palabra clave continue y un punto y coma:

continue ;

Suele situarse en una de las ramas de la sentencia condicional if/else o switch .

Por ejemplo, podemos generar una tabla de multiplicar con huecos: cuando el producto de dos índices sea impar, el elemento del array correspondiente seguirá siendo cero (StmtJumpContinue.mq5).

int a[10][10] = {0};
for(int i = 0i < 10; ++i)
{
   for(int j = 0j < 10; ++j)
   {
      if((j * i) % 2 == 1)
         continue;
      a[i][j] = (i + 1) * (j + 1);
   }
}
ArrayPrint(a);

Y así es como puede calcular la suma de los elementos positivos de un array:

int b[10] = {1, -234, -5, -678, -910};
int sum = 0;
for(int i = 0i < 10; ++i)
{
   if(b[i] < 0continue;
   sum += b[i];
}
Print(sum); // 33

Observe que el mismo bucle puede reescribirse sin continue pero con un mayor anidamiento de bloques de código:

for(int i = 0i < 10; ++i)
{
   if(b[i] >= 0)
   {
      sum += b[i];
   }
}

Así, el operador continue se utiliza a menudo para simplificar el formato del código (especialmente si hay que pasar varias condiciones). No obstante, la elección de uno u otro enfoque es una cuestión de preferencias personales.