⊗ppSpOtEI 76 of 83 menu

Tối ưu hóa các vòng lặp thừa trong PHP

Trong đoạn mã sau, một lập trình viên nào đó đang kiểm tra xem số 3 có trong mảng hay không:

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

Có gì không ổn với giải pháp của anh ta? Có vẻ như không có thao tác thừa nào trong vòng lặp. Vấn đề, tuy nhiên, là sau khi xác định được rằng số 3 có trong mảng - vòng lặp vẫn tiếp tục chạy cho đến hết mảng.

Sẽ không hiệu quả nhất nếu số 3 được tìm thấy ở đâu đó gần đầu mảng, còn bản thân mảng lại dài, chẳng hạn, 1000 phần tử. Như vậy sẽ có một nghìn lần lặp vô dụng, thừa thãi! Không tối ưu chút nào.

Hãy tối ưu hóa mã bằng cách dừng vòng lặp đúng lúc:

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

Đoạn mã sau đếm xem cần cộng bao nhiêu phần tử của mảng để tổng trở nên lớn hơn 10. Hãy thực hiện tối ưu hóa:

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

Đoạn mã sau in ra các số chẵn từ một khoảng cho trước. Hãy thực hiện tối ưu hóa:

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

Đoạn mã sau in ra các số chia hết đồng thời cho 2 và cho 3. Hãy thực hiện tối ưu hóa:

<?php for ($i = 0; $i <= 100; $i++) { if ($i % 2 === 0 and $i % 3 === 0) { echo $i; } } ?>
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối