A continue utasítás PHP-ben

A ciklus működését befejező break utasítás mellett létezik a continue utasítás is, amely egy új ciklusiterációt indít el. Ez az utasítás néha hasznos lehet a kód egyszerűsítésére, bár a feladat szinte mindig megoldható anélkül is. Nézzünk egy gyakorlati példát.

Tegyük fel, hogy adott egy számokat tartalmazó tömb. Járjuk be ciklussal, és a 2-vel osztható számokat négyzetre emeljük és írjuk ki a képernyőre, majd a 3-mal osztható számokat köbre emeljük és írjuk ki a képernyőre.

Ime a leírt feladat megoldása:

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;
    }
  }
?>

Amint látható, a echo $res sor kétszer ismétlődik. Vigyük ki az if feltételblokkon kívülre, így:

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; // kivittük a kiírást a feltételből
  }
?>

Azonban most a szkriptünk kissé másképp működik: kiderül, hogy a szokásos elemekre is, amelyeket nem dolgoztunk fel az if feltételünkben, végrehajtódik a $res változó kiírása a képernyőre, ami a feladat feltétele szerint nem szükséges számunkra.

Javítsuk a problémát úgy, hogy az if feltételünkhöz hozzáadunk egy else ágat is, amely azokra az elemekre fog vonatkozni, amelyek nem oszthatók 2-vel vagy 3-mal, és ott meghívjuk a continue utasítást, amely azonnal a ciklus következő iterációjára ugrik:

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; // átugrunk egy új ciklusiterációra
    }
    
    echo $res; // akkor hajtódik végre, ha osztható 2-vel vagy 3-mal
  }
?>
Задание 1

Írjon egy ciklust, amely csak 1-től 100-ig a páros számokat jeleníti meg, a páratlanokat a continue utasítással kihagyva.