⊗ppSpOtEI 76 of 83 menu

Nevajadzīgo cikla iterāciju optimizācija PHP

Šajā kodā kāds programmētājs pārbauda, vai masīvā atrodas skaitlis 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); ?>

Kas ir nepareizs ar viņa risinājumu? Šķiet, ka ciklā netiek veiktas nevienas papildu darbības. Tomēr problēma ir tā, ka pēc tam, kad ir noteikts, ka skaitlis 3 atrodas masīvā - cikls turpina darboties līdz masīva beigām.

Vismazāk racionāli būs, ja skaitlis 3 tiks atrasts kaut kur masīva sākumā, bet pats masīvs būs garš, piemēram, 1000 elementus. Izrādīsies tūkstošs bezjēdzīgu papildu cikla iterāciju! Neoptimāli.

Optimizēsim kodu, laicīgi apturot ciklu:

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

Šis kods aprēķina, cik masīva elementus nepieciešams saskaitīt, lai summa kļūtu lielāka par 10. Veiciet optimizāciju:

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

Šis kods izvada pāra skaitļus no dotā intervāla. Veiciet optimizāciju:

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

Šis kods izvada skaitļus, kas vienlaikus dalās ar 2 un ar 3. Veiciet optimizāciju:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt