Maagizo ya continue katika PHP

Kando na maagizo ya break, ambayo yanamaliza kazi ya kitanzi, pia kuna maagizo ya continue, ambayo yanaanza iteresheni mpya ya kitanzi. Maagizo haya wakati mwingine yanaweza kuwa muhimu kurahisisha msimbo, ingawa karibu kila wakati shida inaweza kutatuliwa nayo. Hebu tuangalie kwa mfano wa vitendo.

Wacha tuwe na safu ya nambari. Hebu tuipitie kwa kitanzi na nambari ambazo zinagawanyika kwa 2, tuzipe mraba na kuzitoa kwenye skrini, na nambari ambazo zinagawanyika kwa 3, tuzipe ujazo na kuzitoa kwenye skrini.

Hapa kuna suluhisho la shida iliyoelezewa:

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

Kama unavyoona, mstari echo $res unarudiwa mara mbili. Hebu tuutoa nje ya if, kama hivi:

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; // imeletwa nje ya masharti
  }
?>

Sasa skripti yetu, hata hivyo, inafanya kazi kidogo si sawa: itatokea kwamba hata kwa vipengele vya kawaida, visivyoshughulikiwa kupitia if yetu, utekelezaji wa utoaji wa tofauti $res kwenye skrini, ambayo kwa masharti ya shida yetu hatuitaki.

Hebu tusahihishe tatizo, tukiongeza kwenye if yetu sharti jingine else, ambalo litafanya kazi kwa vipengele visivyogawanyika kwa 2 na 3, na tuite humo maagizo continue, ambayo mara moja itatupitisha kwenye iteresheni mpya ya kitanzi:

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; // tutaenda kwenye iteresheni mpya ya kitanzi
    }
    
    echo $res; // itatekelezwa, ikiwa inagawanyika kwa 2 au 3
  }
?>
Задание 1

Andika kitanzi, ambacho kinatoa tu nambari shufwa kutoka 1 hadi 100, ukiruka zisizo shufwa kwa kutumia continue.