⊗ppPmLpCn 123 of 447 menu

Instrucțiunea continue în PHP

Pe lângă instrucțiunea break, care termină execuția unei bucle, există și instrucțiunea continue, care începe o nouă iterație a buclei. Această instrucțiune poate fi uneori utilă pentru a simplifica codul, deși aproape întotdeauna problema poate fi rezolvată și fără ea. Să vedem un exemplu practic.

Să presupunem că avem un array cu numere. Să îl parcurgem cu o buclă și numerele divizibile cu 2, le ridicăm la pătrat și le afișăm pe ecran, iar numerele divizibile cu 3, le ridicăm la cub și le afișăm pe ecran.

Iată soluția problemei descrise:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; foreach ($arr as $elem) { if ($elem % 2 === 0) { $res = $elem * $elem; echo $res; } elseif ($elem % 3 === 0) { $res = $elem * $elem * $elem; echo $res; } } ?>

După cum vedeți, linia echo $res se repetă de două ori. Să o scoatem în afara if, astfel:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; foreach ($arr as $elem) { if ($elem % 2 === 0) { $res = $elem * $elem; } elseif ($elem % 3 === 0) { $res = $elem * $elem * $elem; } echo $res; // am scos afișarea în afara condiției } ?>

Totuși, acum scriptul nostru funcționează puțin diferit: se va dovedi că și pentru elementele obișnuite, neprocesate prin if-ul nostru, va fi efectuată afișarea variabilei $res pe ecran, ceea ce conform condițiilor problemei noastre nu este necesar.

Să corectăm problema, adăugând la if-ul nostru încă o condiție else, care se va activa pentru elementele nedivizibile cu 2 și 3, și vom apela acolo instrucțiunea continue, care ne va trimite imediat la o nouă iterație a buclei:

<?php $arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; foreach ($arr as $elem) { if ($elem % 2 === 0) { $res = $elem * $elem; } elseif ($elem % 3 === 0) { $res = $elem * $elem * $elem; } else { continue; // vom trece la o nouă iterație a buclei } echo $res; // se va executa, dacă este divizibil cu 2 sau 3 } ?>

Scrieți o buclă care afișează numai numerele pare de la 1 la 100, săr peste cele impare folosind continue.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge