⊗ppSpOtEI 76 of 83 menu

Optimalizácia nadbytočných prechodov cyklu v PHP

V nasledujúcom kóde nejaký programátor kontroluje, či sa v poli nachádza číslo 3:

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

Čo je nesprávne na jeho riešení? Zdá sa, že žiadne nadbytočné operácie v cykle sa nerobia. Problém však je, že po tom, ako sa zistilo, že číslo 3 je v poli - cyklus sa aj naďalej točí až do konca poľa.

Najneracionálnejšie to bude, ak sa číslo 3 nájde niekde na začiatku poľa, a samotné pole bude mať dĺžku, povedzme, 1000 prvkov. Výsledkom bude tisíc zbytočných nadbytočných iterácií cyklu! Nie je to optimálne.

Optimalizujme kód včasným zastavením cyklu:

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

Nasledujúci kód počíta, koľko prvkov poľa treba sčítať, kým sa súčet stane väčším ako 10. Vykonajte optimalizáciu:

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

Nasledujúci kód vypisuje párne čísla z daného intervalu. Vykonajte optimalizáciu:

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

Nasledujúci kód vypisuje čísla, ktoré sú deliteľné súčasne 2 a 3. Vykonajte optimalizáciu:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť