⊗ppSpOtEI 76 of 83 menu

PHP'de Gereksiz Döngü Geçişlerinin Optimizasyonu

Aşağıdaki kodda bir programcı, dizide 3 sayısının olup olmadığını kontrol ediyor:

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

Bu çözümde yanlış olan ne? Görünüşte döngüde hiçbir gereksiz işlem yapılmıyor. Ancak sorun şu ki, dizide 3 sayısının bulunduğu belirlendikten sonra - döngü yine de dizinin sonuna kadar dönmeye devam ediyor.

En verimsiz durum, 3 sayısı dizinin başlarında bir yerde bulunursa ve dizinin uzunluğu, diyelim ki 1000 eleman olursa ortaya çıkar. Bin tane gereksiz, fazladan döngü yinelemesi olur! Optimal değil.

Kodu, döngüyü zamanında durdurarak optimize edelim:

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

Aşağıdaki kod, toplam 10'u aşana kadar diziden kaç elemanın toplanması gerektiğini hesaplıyor. Optimizasyonu gerçekleştirin:

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

Aşağıdaki kod, verilen aralıktaki çift sayıları yazdırıyor. Optimizasyonu gerçekleştirin:

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

Aşağıdaki kod, aynı anda hem 2'ye hem de 3'e bölünebilen sayıları yazdırıyor. Optimizasyonu gerçekleştirin:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet