Optimizimi i Kalimeve të Tepërta të Ciklit në PHP

Në kodin vijues një programues kontrollon nëse në array ndodhet numri 3:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 3) {
      $exists = true;
    }
  }
  
  var_dump($exists);
?>

Çfarë nuk shkon me zgjidhjen e tij? Në dukje nuk kryhen operacione të tepërta në cikël. Problemi, sidoqoftë, është se pasi është përcaktuar që numri 3 ndodhet në array - cikli vazhdon të kthehet deri në fund të array.

Më joracionale do të jetë nëse numri 3 gjendet diku në fillim të array, dhe vetë array të jetë i gjatë, le të themi, 1000 elementë. Do të rezultojnë një mijë përsëritje të panevojshme të tepërta të ciklit! Jo optimale.

Le të optimizojmë kodin, duke e ndaluar ciklin në kohën e duhur:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
  $exists = false;
  foreach ($arr as $elem) {
    if ($elem == 3) {
      $exists = true;
      break;
    }
  }
  
  var_dump($exists);
?>
Задание 1

Kodi vijues llogarit, sa elementë të array duhen mbledhur, që shuma të bëhet më e madhe se 10. Kryeni optimizimin:

php<?php
  $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  $sum = 0;
  $i = 1;
  
  foreach ($arr as $elem) {
    $sum += $elem;
    
    if ($sum <= 10) {
      $i++;
    }
  }
  
  echo $i;
?>
Задание 2

Kodi vijues shfaq numrat çift nga një interval i caktuar. Kryeni optimizimin:

php<?php
  for ($i = 0; $i <= 100; $i++) {
    if ($i % 2 === 0) {
      echo $i;
    }
  }
?>
Задание 3

Kodi vijues shfaq numrat që pjesëtohen njëkohësisht me 2 dhe me 3. Kryeni optimizimin:

php<?php
  for ($i = 0; $i <= 100; $i++) {
    if ($i % 2 === 0 and $i % 3 === 0) {
      echo $i;
    }
  }
?>