misol. foreach operatori.
Boshqaruv o’tkazuvchi operatorlar
Ba’zida tsikl yoki uning alohida iteratsiya ishini tezda to’xtatishga to’g’ri keladi. Buning uchun break hamda continue operatorlari kerak bo’ladi.
Break
Break operatori mavjud tsiklni amalga oshirishni tugallaydi, for, foreach, while, do while yoki switch break strukturani boshqaruvchi, tugallash kerakligini bildiruvchi, uning tarkibiga kiruvchi raqamli argument bilan qo’llaniladi.
$i=1;
while ($i) {
$n = rand(1,10);
// istalgan sonni umumiylashtiramiz
// 1 dan 10 gacha
echo "$i:$n ";
// iteratsiya raqamini chiqaramiz va
// umumiylashtirilgan son
if ($n==5) break;
/* Agar umumiylashtirilgan son 5 bo’lsa, tsikl ishini to’xtatamiz. Bu holda
bu qatordan keyin tsikl ichida nima mavjud bo’lsa, amalga oshirilmaydi */
echo "Цikl ishlamoqda
";
$i++;
}
echo "
iteratsiya tsikli soni $i ";
?>
Misol. Break operatori
Bu skript ishining natijasi taxminan quyidagicha:
1:7 Sikl ishlayapti
2:2 Sikl ishlayapti
3:5
Sikl iteratsiyasi soni
Agar break operatoridan so’ng son ko’rsatilsa, bu tsikl operatorlaridan tarkib topgan aynan shunday miqdor buziladi. Modomiki, yuqorida keltirilgan misolda tsikldan foydalanilmagan ekan, bu unchalik to’g’ri emas. Skriptimizni biroz o’zgartiramiz:
$i=1;
while ($i) {
$n = rand(1,10);
// Istalgan sonni umumlashtiramiz
// 1 dan 10 gacha
switch ($n){
case 5:
echo "
switch dan chiqish (n=$n)";
break 1;
// switch ishini to’xtatamiz
// (breakmavjud birinchi tsiklni)
case 10:
echo "
switch dan chiqish va
while (n=$n)";
break 2;
// switch ishini to’xtatamiz va while
// (ikkita break mavjud tsikl)
default:
echo "switch ishlayapti (n=$n), ";
}
echo " while ishlayapti –$i
" amal;
$i++;
}
echo "
tsikl iteratsiyasi soni $i ";
?>
continue
Ba’zan tsikl ishini butunlay to’xtatish lozim bo’lmaydi, faqatgina uning yangi iteratsiyasini boshlash kerak. Continue operatori istalgan tsiklni amalga oshirish blokidan keyingi instruktsiyalarni o’tkazib yuborish va yangi doira bilan amalga oshirishni davom ettirish imkonini beradi. continue ni uning tarkibida boshqariluvchi konstruktsiyalar ishini yakunlash kerakligini ko’rsatuvchi raqamli argument tarzida ishlatish mumkin.
Oldingi paragrafda berilgan misoldagi break operatorini continue ga almashtiramiz. Bundan tashqari to’rt tsikli miqdorini kamaytiramiz.
$i=1;
while ($i<4) {
$n = rand(1,10);
// istalgan sonni umumlashtiramiz
// 1 dan 10 gacha
echo "$i:$n ";
// interatsiya raqamini chiqaramiz va
// umumlashtirilgan son
if ($n==5) {
echo "Yangi interatsiya ";
continue;
/*Agar umumlashtirilgan son 5 bo’lsa, yangi tsikl interatsiyasini boshlaymiz,
$i kattalashmaydi */
}
echo "Цikl ishlayapti
";
$i++;
}
echo "
tsikl interatsiyasi soni $i ";
?>
Bu skript ishining natijasi quyidagicha
1:10 Sikl ishlayapti
2:5 Yangi iteratsiya
2:1 Sikl ishlayapti
3:1 Sikl ishlayapti
4 sikli interatsiyasi soni
continue operatori amalga oshgandan so’ng tsikl ishi tugallanmaganini hisobga olamiz. Misolda tsikl hisoblagichi 5 soni olingandan taqdirda u continue operatoridan keyin bo’lsa o’zgarmaydi. Aslida continue yordamida 5 soni umumlashtirilganda bu holatdan chetlashamiz. Shuning uchun continue operatorini ifoda haqiqiyligini tekshirishga almashtirib yozib qo’yish kifoya:
$i=1;
while ($i<4) {
$n = rand(1,10);
// istalgan sonni umumlashtiramiz
// 1 dan 10 gacha
if ($n!==5) {
echo "$i:$n
";
// interatsiya raqamini chiqaramiz
// va umumlashtirilgan son
$i++;
}
}
?>
PHP da continue dan foydalanishning bir xususiyati mavjud – switch konstruktsiyasida u xuddi break kabi ishlaydi. Agar switch tsikl ichida joylashgan bo’lsa va yangi tsikl interatsiyasini boshlash kerak bo’lsa, continue 2 dan foydalanish lozim bo’ladi.
Do'stlaringiz bilan baham: |