Codecourse

Dövr operatorları

Dövr operatorları şərtdən asılı olaraq müəyyən əməliyyatların bir neçə dəfə təkrar yerinə yetirilməsinə imkan verir. Tutaq ki 1-dən 10-dək natural ədədləri ekranda göstərmək lazımdır. Bu məsələni dövr operatorlarından istifadə etmədən aşağıdakı kimi həll etmək olar:

<?php

echo "1<br>";
echo "2<br>";
echo "3<br>";
echo "4<br>";
echo "5<br>";
echo "6<br>";
echo "7<br>";
echo "8<br>";
echo "9<br>";
echo "10<br>";

?>
1
2
3
4
5
6
7
8
9
10

Bəs əgər yuxarıdakı məsələnin şərti 1-dən 1000-dək natural ədədlər içərisindən həm 3-ə, həm də 5-ə bölünən ədədləri tapmaq olsaydı? Məhz bu kimi hallarda dövr operatorları köməyimizə gəlir.

For dövr operatoru

PHP proqramlaşdırma dilində ən mürəkkəb dövr operatorudur. Sintaksisi aşağıdakı kimidir:


for(başlanğıc; şərt; addım) {
  əməliyyat;
}

  1. Başlanğıc hissədə sayğacın ilkin qiyməti və dövrün parametrləri təyin olunur.
  2. Şərt hissədə hansısa şərt yoxlanılır və qiyməti TRUE olduqda əməliyyat(lar) yerinə yetirilir, əks halda dövr öz işini dayandırır.
  3. Addım hissəsindəki ifadə dövr hər dəfə təkrar olunduqda yerinə yetirilir.

Məlumat

Dövrün hər dəfə təkrarı elmi dildə iterasiya adlanır.

<?php

for($i = 1; $i <= 10; $i++) {
   echo $i."<br>";
}

?>
1
2
3
4
5
6
7
8
9
10

Yuxarıdakı nümunədə:

Dövr aşağıdakı kimi yerinə yetilir:

  1. Başlanğıc: $i = 0 ifadəsi dövrün başlanğıcında yalnız bir dəfə yerinə yetirilir.
  2. Şərt: $i <= 10 ifadəsi hər iterasiyadan əvvəl yoxlanılır. Qiyməti FALSE olduqda dövr öz işini dayandırır.
  3. Əməliyyat(lar): echo $i."<br>".
  4. Addım: $i++ hər iterasiyada əməliyyat(lar)dan sonra yerinə yetirilir.
  5. Yenidən 2-ci addım yerinə yetirilir.

Məlumat

Bəs dövr dəyişəni nə üçün çox vaxt $i adlandırılır?. Vaxtilə populyar Fortran proqramlaşdırma dilində tipi tam ədəd olan dəyişənlərin adı "i", "j" və başqa bir neçə simvolla başlamalı idi. Ona görə proqramçılar dövrdə sayğac kimi istifadə olunan dəyişənləri $i adlandırırdılar. Əksər müasir proqramçıların Fortran dilində bir sətir kod yazmadığına baxmayaraq, ənənə saxlanılıb.

İç-içə for dövrləri

Bir for dövrü digər for dövrünün içində istifadə edilə bilər. Məsələn, aşağıdakı kod vurma cədvəlini ekranda göstərəcək:

<?php

for($i = 1; $i < 10; $i++) {
   for($j = 1; $j < 10; $j++) {
      $total = $i * $j;
      echo "$i * $j = ".$total."<br>";
   }
   echo "<br>";
}

?>

While dövr operatoru

Sintaksisi aşağıdakı kimidir:


while(şərt) {
  əməliyyat;
}

İterasiyaların sayı məlum olmadıqda bu dövr operatorundan istifadə məqsədəuyğundur.

Şərtin qiyməti TRUE olduqda əməliyyat(lar) yerinə yetirilir. Elə etmək lazımdır ki, şərtin qiyməti son nəticədə FALSE olsun, yoxsa sönsuz dövr yaranacaq. Aşağıdakı kod 1-dən 20-dək natural ədədləri 2 intervalı ilə ekranda göstərəcək:

<?php

$i = 1;
while ($i <=20) {
   echo $i."<br>";
   $i+=2;
}

?>
1
3
5
7
9
11
13
15
17
19

do-while dövr operatoru

Sintaksisi aşağıdakı kimidir:


do {
   əməliyyat;
} while(şərt)

do-while operatorunun while operatorundan yeganə fərqi odur ki, şərtin doğruluğu iterasiyanın əvvəlində deyil, sonunda yoxlanılır. Bu səbəbdən dövrün içindəki əməliyyat(lar) ən azı bir dəfə yerinə yetirilir. Birinci iterasiyadan sonra şərtin qiynəti TRUE olduqda idarəetmə yenidən dövrün əvvəlinə ötürülür, FALSE olduqda isə dövr öz işini dayandırır.

<?php

do {
   echo $i;
   $i++;
} while ($i > 5)

?>
1

Tapşırıq

Məsələ 1

1-dən 26-dək natural ədədlərin cəmini ekranda göstərən skript yazın.

Məsələ 2

1-dən 100-dək natural ədədlər içərisindən bütün sadə ədədləri ekranda göstərən skript yazın. Məlumat üçün, sadə ədəd 2-dən başlayaraq yalnız 2 böləni (1-ə və özünə) olan natural ədəddir.

Növbəti dərsi seçib keçid düyməsinə sıxın: