⊗ppSpOtEI 76 of 83 menu

Βελτιστοποίηση περιττών επαναλήψεων βρόχου σε PHP

Στον ακόλουθο κώδικα, κάποιος προγραμματιστής ελέγχει αν ο αριθμός 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); ?>

Τι δεν πάει καλά με τη λύση του; Φαίνεται ότι δεν γίνονται περιττές πράξεις μέσα στον βρόχο. Το πρόβλημα, όμως, είναι ότι αφού προσδιοριστεί ότι ο αριθμός 3 υπάρχει στον πίνακα - ο βρόχος συνεχίζει να εκτελείται μέχρι το τέλος του πίνακα.

Το λιγότερο ορθολογικό θα ήταν, αν ο αριθμός 3 βρισκόταν κάπου στην αρχή του πίνακα, ενώ ο ίδιος ο πίνακας είχε μήκος, ας πούμε, 1000 στοιχεία. Θα είχαμε χίλιες άχρηστες, περιττές επαναλήψεις βρόχου! Δεν είναι βέλτιστο.

Ας βελτιστοποιήσουμε τον κώδικα, σταματώντας έγκαιρα τον βρόχο:

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

Ο ακόλουθος κώδικας μετρά πόσα στοιχεία του πίνακα πρέπει να προστεθούν, ώστε το άθροισμα να γίνει μεγαλύτερο από 10. Εκτελέστε βελτιστοποίηση:

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

Ο ακόλουθος κώδικας εμφανίζει ζυγούς αριθμούς από ένα δεδομένο εύρος. Εκτελέστε βελτιστοποίηση:

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

Ο ακόλουθος κώδικας εμφανίζει αριθμούς που διαιρούνται ταυτόχρονα με το 2 και με το 3. Εκτελέστε βελτιστοποίηση:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη