ინსტრუქცია continue PHP-ში
ციკლის მუშაობის შეწყვეტის ინსტრუქცია 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-ს
დავუმატოთ კიდევ ერთი პირობა else, რომელიც
იმ ელემენტებისთვის იმუშავებს, რომლებიც არ იყოფა 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-ზე
}
?>
დაწერეთ ციკლი, რომელიც გამოიტანს მხოლოდ
ლუწ რიცხვებს 1-დან 100-მდე,
და გამოტოვებს კენტებს continue-ის საშუალებით.