Udhëzimi continue në PHP
Përveç udhëzimit break, i cili përfundon
punën e ciklit, ekziston edhe udhëzimi
continue, i cili nis një përsëritje të re
të ciklit. Ky udhëzim ndonjëherë mund të jetë
i dobishëm për të thjeshtuar kodin, megjithëse pothuajse
gjithmonë detyra mund të zgjidhet edhe pa të. Le të
shohim një shembull praktik.
Le të themi se kemi një grup me numra. Le të
kalojmë nëpër të me një cikël dhe numrat që pjesëtohen
me 2, t'i ngremë në katror dhe t'i shfaqim
në ekran, kurse numrat që pjesëtohen me 3,
t'i ngremë në kub dhe t'i shfaqim në ekran.
Këtu është zgjidhja e detyrës së përshkruar:
<?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;
}
}
?>
Siç e shihni, rreshti echo $res
përsëritet dy herë. Le ta nxjerrim atë
jashtë if, kështu:
<?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; // e nxorrën shfaqjen jashtë kushtit
}
?>
Tani skripti ynë, megjithatë, funksionon pak
ndryshe: do të ndodhë që edhe për elementët e zakonshëm,
të papërpunuar përmes if tonë, do të
kryhet shfaqja e ndryshores $res
në ekran, e cila sipas kushtit të detyrës sonë
nuk na nevojitet.
Le të rregullojmë problemin, duke i shtuar if tonë
edhe një kusht else, i cili do të aktivizohet
për elementët që nuk pjesëtohen me 2 dhe
3, dhe do të thërrasim aty udhëzimin continue,
i cili menjëherë do të na dërgojë
në një përsëritje të re të ciklit:
<?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; // do të kalojmë në një përsëritje të re të ciklit
}
echo $res; // do të ekzekutohet nëse pjesëtohet me 2 ose 3
}
?>
Shkruani një cikël, i cili shfaq vetëm
numrat çift nga 1 deri në 100,
duke anashkaluar numrat tek me ndihmën e continue.