⊗ppSpOtEI 76 of 83 menu

Optimisation des passages inutiles de boucle en PHP

Dans le code suivant, un certain programmeur vérifie si le nombre 3 est présent dans le tableau :

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

Qu'est-ce qui ne va pas avec sa solution ? Apparemment, aucune opération superflue n'est effectuée dans la boucle. Le problème, cependant, est qu'après avoir déterminé que le nombre 3 est dans le tableau - la boucle continue de tourner jusqu'à la fin du tableau.

Ce sera le plus irrationnel si le nombre 3 est trouvé quelque part au début du tableau, et que le tableau a une longueur de, disons, 1000 éléments. Il en résultera mille itérations de boucle inutiles et superflues ! Pas optimal.

Optimisons le code en arrêtant la boucle à temps :

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

Le code suivant calcule combien d'éléments du tableau doivent être additionnés pour que la somme dépasse 10. Effectuez l'optimisation :

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

Le code suivant affiche les nombres pairs d'un intervalle donné. Effectuez l'optimisation :

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

Le code suivant affiche les nombres divisibles à la fois par 2 et par 3. Effectuez l'optimisation :

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser