PHP'деги continue буйругу
Циклдин ишин аяктаган break буйругунан тышкары,
циклдин жаңы кайталанышын баштаган continue
буйругу да бар. Бул буйрук кээде кодду жөнөкөйлөтүү
үчүн пайдалуу болушу мүмкүн, бирок дээрлик ар дайым
милдетти ансыз да чечсе болот. Келгиле, практикалык
мисалды карап көрөлү.
Бизде сандар менен массив берилген дейли. Аны цикл
менен кайталап, 2ге бөлүнгөн сандарды
квадратка көтөрүп, экранга чыгаралы, ал эми 3ге
бөлүнгөн сандарды кубга көтөрүп, экранга чыгаралы.
Сүрөттөлгөн милдеттин чечими төмөнкүдөй:
<?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;
}
}
?>
Көрүнүп тургандай, echo $res сабы
эки жолу кайталанып жатат. Аны if
ичинен чыгаралы, мындай:
<?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; // чыгарууну шарттан сыртка чыгардык
}
?>
Эми, бирок, биздин скрипт бир аз башкача иштейт:
биздин if аркылуу иштетилбеген кадимки
элементтер үчүн да $res өзгөрмөсүн
экранга чыгаруу ишке ашырылат, ал эми биздин
милдеттин шарты боюнча буга муктаж эмеспиз.
Көйгөйдү оңдоп, биздин if кошуп,
2 жана 3ге бөлүнбөгөн элементтер
үчүн ишке кирген else шартын кошобуз
жана анда бизди дароо циклдин жаңы кайталанышына
өткөрүп жибере турган continue буйругуна
чакырабыз:
<?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; // циклдин жаңы кайталанышына өтөбүз
}
echo $res; // 2ге же 3кө бөлүнгөндө гана ишке ашат
}
?>
continue колдонуп, так сандарды өткөрүп
жиберген, 1дөн 100гө чейинки
жуп сандарды гана чыгарган цикл жазыңыз.