⊗ppPmLpCn 123 of 447 menu

Příkaz continue v PHP

Kromě příkazu break, který ukončuje práci cyklu, existuje také příkaz continue, který spouští novou iteraci cyklu. Tento příkaz může být někdy užitečný pro zjednodušení kódu, ačkoli prakticky vždy lze úlohu vyřešit i bez něj. Podívejme se na praktickém příkladu.

Předpokládejme, že máme pole s čísly. Projděme jej cyklem a čísla, která jsou dělitelná 2, umocníme na druhou a vypíšeme na obrazovku, a čísla, která jsou dělitelná 3, umocníme na třetí a vypíšeme na obrazovku.

Zde je řešení popsané úlohy:

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

Jak vidíte, řádek echo $res se opakuje dvakrát. Vynesme jej mimo if, takto:

<?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; // výpis byl vynesen mimo podmínku } ?>

Nyní však náš skript funguje trochu jinak: vyjde to tak, že i pro běžné prvky, nezpracované prostřednictvím našeho if, bude proveden výpis proměnné $res na obrazovku, což podle podmínek naší úlohy nechceme.

Opravme problém přidáním k našemu if ještě podmínky else, která bude platit pro prvky, jež nejsou dělitelné 2 a 3, a zavoláme tam příkaz continue, který nás okamžitě přenese na novou iteraci cyklu:

<?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; // přejdeme na novou iteraci cyklu } echo $res; // provedeme, pokud je dělitelné 2 nebo 3 } ?>

Napište cyklus, který vypisuje pouze sudá čísla od 1 do 100, a přeskočí lichá pomocí continue.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout