Инструкција continue у PHP-у

Поред инструкције break, која завршава рад петље, постоји и инструкција continue, која покреће нову итерацију петље. Ова инструкција понекад може бити корисна за поједностављивање кода, иако се задатак готово увек може решити и без ње. Хајде да погледамо на практичном примеру.

Претпоставимо да имамо низ са бројевима. Хајде да га пређемо петљом и бројеве који су дељиви са 2, подигнемо на квадрат и испишемо на екран, а бројеве који су дељиви са 3, подигнемо на куб и испишемо на екран.

Ево решења описане задаће:

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

Као што видите, линија echo $res се понавља два пута. Извадимо је ван if, овако:

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; // избацили смо испис ван услова
  }
?>

Међутим, сада наш скрипт ради помало другачије: испоставиће се да ће и за обичне елементе, који нису обрађени кроз наш if, бити извршен испис променљиве $res на екран, што према условима наше задаће није потребно.

Решимо проблем додавањем нашем if-у још једног услова else, који ће се активирати за елементе који нису дељиви са 2 и 3, и позваћемо тамо инструкцију continue, која ће нас одмах пребацивати на нову итерацију петље:

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; // прелазимо на нову итерацију петље
    }
    
    echo $res; // извршиће се ако је дељив са 2 или 3
  }
?>
Задание 1

Напишите петљу која исписује само парне бројеве од 1 до 100, прескачући непарне помоћу continue.