PHP හි අතිරික්ත ලූප් පසුක්රම සුළුකිරීම

පහත කේතයේ, කිසියම් ක්‍රමලේඛකයෙක් අරාව තුළ 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);
?>

ඔහුගේ විසඳුමට කුමක් වරද්ද? පෙනෙන විදියට ලූපය තුළ අතිරික්ත මෙහෙයුම් කිසිවක් සිදු නොකෙරේ. කෙසේ නමුත්, ගැටළුව නම්, අරාව තුළ 3 අංකය ඇති බව නිශ්චය කිරීමෙන් පසු - ලූපය තවමත් අරාව අවසානය දක්වා හැරෙමින් පවතී.

වඩාත්ම අනුචිත වන්නේ, 3 අංකය අරාවේ ආරම්භයේම දී හමුවී, අරාවම දිග, අපි කියමු, 1000 අංග වලින් සමන්විත වූ විට ය. එවිට අනවශ්‍ය ලූප පිලිවෙත් දහසක් වැඩ කරනු ඇත! සුළුකළ නොහැක.

ලූපය නියම වේලාවට නතර කර කේතය සුළුකරමු:

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

පහත කේතය ගණනය කරන්නේ, එකතුව 10 ඉක්මවා යාමට අරාවෙහි කොපමණ අංග එකතු කළ යුතු ද යන්නයි. සුළුකිරීම සිදු කරන්න:

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

පහත කේතය දී ඇති විරාමයෙන් ඉරට්ටේ අංක ප්‍රතිදානය කරයි. සුළුකිරීම සිදු කරන්න:

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

පහත කේතය එකවර 2 සහ 3 න් බෙදිය හැකි අංක ප්‍රතිදානය කරයි. සුළුකිරීම සිදු කරන්න:

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