PHP-däki continue buýrugy
Dowryny tamamlaýan break buýrugyndan
daşarda, şeýle hem sikly täzeden gaýtalanmagyny
başlaýan continue buýrugy bar.
Bu buýruk käwagt kody ýönekeýleşdirmek üçin
peýdaly bolup biler, ýöne esasan hemme
mesele onuňsyz hem çözüp bolýar.
Geliň amaly mysal bilen göreliň.
Bizde sanlar bilen sanaw berlen diýeliň.
Geliň ony sikly aýlanyp, 2-e bölünýän
sanlary kwadratyna göterip, ekrana çykaryň,
3-e bölünýän sanlary bolsa kubyna
göterip, ekrana çykaryň.
Beýan edilen meseläniň çözgüdini:
<?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;
}
}
?>
Görşüňiz ýaly, echo $res setiri
iki gezek gaýtalanylýar. Geliň ony
if-den çykaryň, şeýle:
<?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; // çykarmany şertden çykardyk
}
?>
Ýöne indi skriptimiz birneme başgaça işleýär:
netijede, bizim if arkaly işlenmedik
ädip elementler hem üçin $res üýtgeýjisiniň
ekrana çykarylmagy ýerine ýetiriler, bu bolsa
biziň mesele şertimize görä gerek däl.
Meseläni düzedeliň, if-imize 2 we
3-e bölünmeýän elementler üçin işjeň
boljak ýene bir şert else goşup, ol ýerde
sikly derrew täze gaýtalanmaga geçirýän
continue buýrugyny çakylyş:
<?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; // siklyň täze gaýtalanmagyna geçeris
}
echo $res; // 2 ýa-da 3-e bölünende ýerine ýetiriler
}
?>
1-den 100-e çenli diňe jübüt sanlary
çykaryş etýän we tek sanlary continue
ulanyp geçýän sikly ýazyň.