Koder.uz

3 of 402 menu

PHPda continue operatori

 break operatori tsiklni to‘xtatsa, continue esa yangi iteratsiyani boshlaydi. Ushbu operator ba’zan kodni soddalashtirish uchun foydali bo‘lishi mumkin, garchi deyarli har doim uni ishlatmasdan ham muammoni hal qilish mumkin. Keling, amaliy misolni ko‘rib chiqamiz.

Faraz qilaylik, bizda sonlardan iborat massiv bor. Uni tsikl orqali ko‘rib chiqamiz:

  • 2 ga bo‘linadigan sonlarni kvadratga oshirib ekranga chiqaramiz.
  • 3 ga bo‘linadigan sonlarni kubga oshirib ekranga chiqaramiz.

Mana ushbu masalaning yechimi: 

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

Ko‘rib turganingizdek, echo $res; qatori ikki marta takrorlanmoqda. Keling, uni if tashqarisiga chiqaramiz, mana bunday: 

<?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; // echoni ifdan tashqariga chiqardik } ?>

 Endi esa skriptimiz biroz boshqacha ishlaydi: if orqali oddiy elementlar uchun ham $res o‘zgaruvchisi ekranga chiqariladi, bu esa bizning vazifamiz shartlariga mos kelmaydi.

Muammoni tuzatish uchun if ga else shartini qo‘shamiz. Bu 2 va 3 ga bo‘linmaydigan elementlar uchun ishlaydi va shu joyda continue operatorini chaqiramiz, bu esa darhol tsiklning yangi iteratsiyasiga o‘tishimizni ta’minlaydi: 

<?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; // yangi iteratsiyaga o'tamiz } echo $res; // agar 2 yoki 3 ga bo'linsa bajariladi } ?>

uz ru
light night