⊗ppPmLpCn 123 of 447 menu

A continue utasítás PHP-ben

A ciklus működését befejező break utasítás mellett létezik a continue utasítás is, amely egy új ciklusiterációt indít el. Ez az utasítás néha hasznos lehet a kód egyszerűsítésére, bár a feladat szinte mindig megoldható anélkül is. Nézzünk egy gyakorlati példát.

Tegyük fel, hogy adott egy számokat tartalmazó tömb. Járjuk be ciklussal, és a 2-vel osztható számokat négyzetre emeljük és írjuk ki a képernyőre, majd a 3-mal osztható számokat köbre emeljük és írjuk ki a képernyőre.

Ime a leírt feladat megoldása:

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

Amint látható, a echo $res sor kétszer ismétlődik. Vigyük ki az if feltételblokkon kívülre, így:

<?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; // kivittük a kiírást a feltételből } ?>

Azonban most a szkriptünk kissé másképp működik: kiderül, hogy a szokásos elemekre is, amelyeket nem dolgoztunk fel az if feltételünkben, végrehajtódik a $res változó kiírása a képernyőre, ami a feladat feltétele szerint nem szükséges számunkra.

Javítsuk a problémát úgy, hogy az if feltételünkhöz hozzáadunk egy else ágat is, amely azokra az elemekre fog vonatkozni, amelyek nem oszthatók 2-vel vagy 3-mal, és ott meghívjuk a continue utasítást, amely azonnal a ciklus következő iterációjára ugrik:

<?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; // átugrunk egy új ciklusiterációra } echo $res; // akkor hajtódik végre, ha osztható 2-vel vagy 3-mal } ?>

Írjon egy ciklust, amely csak 1-től 100-ig a páros számokat jeleníti meg, a páratlanokat a continue utasítással kihagyva.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás