Instrucción continue en PHP

Además de la instrucción break, que termina el trabajo del ciclo, también existe la instrucción continue, que inicia una nueva iteración del ciclo. Esta instrucción a veces puede ser útil para simplificar el código, aunque prácticamente siempre la tarea se puede resolver sin ella. Veamos un ejemplo práctico.

Supongamos que tenemos un array con números. Vamos a recorrerlo con un ciclo y los números que son divisibles por 2, los elevaremos al cuadrado y los mostraremos en pantalla, y los números que son divisibles por 3, los elevaremos al cubo y los mostraremos en pantalla.

Aquí está la solución de la tarea descrita:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  foreach ($arr as $elem) {
    if ($elem % 2 === 0) {
      $res = $elem * $elem;
      echo $res;
    } elseif ($elem % 3 === 0) {
      $res = $elem * $elem * $elem;
      echo $res;
    }
  }
?>

Como puedes ver, la línea echo $res se repite dos veces. Saquémosla fuera del if, así:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  foreach ($arr as $elem) {
    if ($elem % 2 === 0) {
      $res = $elem * $elem;
    } elseif ($elem % 3 === 0) {
      $res = $elem * $elem * $elem;
    }
    
    echo $res; // sacamos la salida fuera de la condición
  }
?>

Ahora bien, nuestro script funciona un poco diferente: resultará que para los elementos ordinarios, no procesados por nuestro if, también se ejecutará la salida de la variable $res en pantalla, lo cual según las condiciones de nuestra tarea no necesitamos.

Corrijamos el problema, añadiendo a nuestro if otra condición else, que se activará para los elementos no divisibles por 2 y 3, y llamaremos allí a la instrucción continue, que inmediatamente nos llevará a la nueva iteración del ciclo:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  foreach ($arr as $elem) {
    if ($elem % 2 === 0) {
      $res = $elem * $elem;
    } elseif ($elem % 3 === 0) {
      $res = $elem * $elem * $elem;
    } else {
      continue; // pasaremos a una nueva iteración del ciclo
    }
    
    echo $res; // se ejecutará si es divisible por 2 o 3
  }
?>
Задание 1

Escriba un ciclo que muestre solo números pares del 1 al 100, omitiendo los impares usando continue.