Məzmuna keç
Educora
Başlanğıc14 dəq6 / 27

Dövrlər: for, while və for...of

Eyni işi dəfələrlə təkrarlamağı öyrən: `for`, `while`, `do...while`, `for...of`, həmçinin `break` və `continue`.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • for dövrünün üç hissəsini izah etmək və sayğaclı dövr yazmaq
  • Təkrarların sayı bilinmədikdə while seçmək
  • for...of ilə siyahını gəzmək, break və continue ilə dövrü idarə etmək

Təsəvvür et ki, müəllim səndən 1-dən 100-ə qədər bütün ədədləri çap etməyi xahiş edir. 100 dəfə console.log yazmaq olar, amma bu, həm yorucudur, həm də asanlıqla səhvə yol açır. Kompüterlər təkrar işdən yorulmur — sadəcə onlara dövr vasitəsilə «bunu 100 dəfə et» deməlisən.

for dövrü

Təkrarların sayı əvvəlcədən bəllidirsə, for dövrü ən uyğun seçimdir. Onun mötərizəsində nöqtəli vergüllə ayrılmış üç hissə var:

  1. Başlanğıc: let i = 1 — sayğac yaradılır. Bu, yalnız bir dəfə, ən əvvəldə icra olunur.
  2. Şərt: i <= 5 — hər təkrardan əvvəl yoxlanır. Yalan olan kimi dövr dayanır.
  3. Addım: i++ — hər təkrardan sonra sayğacı dəyişir.
JavaScript
for (let i = 1; i <= 5; i++) {
  console.log(`Lap ${i}`);
}

for (let i = 10; i > 0; i -= 3) {
  console.log('Countdown:', i);
}
▸ Gözlənilən nəticə
Lap 1
Lap 2
Lap 3
Lap 4
Lap 5
Countdown: 10
Countdown: 7
Countdown: 4
Countdown: 1
Tərif
İterasiya

Dövr gövdəsinin bir dəfə icra olunması. 1-dən 5-ə qədər sayan dövr 5 iterasiya edir.

1-dən 100-ə qədər ədədlərin cəmi

1 + 2 + 3 + … + 100 cəmini dövrlə hesabla.

Həllini göstər
Cəmi saxlamaq üçün sum dəyişənini 0-la başladırıq.
Dövr hər iterasiyada sum-a növbəti i-ni əlavə edir: sum += i.
Dövr bitəndə sum = 5050 olur (aşağıdakı kodu işə sal).
JavaScript
let sum = 0;

for (let i = 1; i <= 100; i++) {
  sum += i;
}

console.log('Sum:', sum);
▸ Gözlənilən nəticə
Sum: 5050

while və do...while

Bəzən neçə təkrar lazım olduğunu bilmirik. Məsələn, Leylanın 50 manatı var və o, hər ay 20 manat yığır. 200 manatlıq velosiped üçün neçə ay lazımdır? while dövrü şərt doğru olduqca təkrarlanır:

JavaScript
let savings = 50;
let months = 0;

while (savings < 200) {
  savings += 20;
  months++;
}

console.log(`${months} months, ${savings} AZN`);
▸ Gözlənilən nəticə
8 months, 210 AZN

do...while dövrü şərti gövdədən sonra yoxlayır, ona görə gövdə şərt əvvəlcədən yalan olsa belə ən azı bir dəfə icra olunur. Aşağıdakı nümunədə şərt yalandır, amma mesaj yenə bir dəfə çap olunur.

JavaScript
let attempts = 5;

do {
  console.log('Attempt number', attempts);
  attempts++;
} while (attempts < 3);
▸ Gözlənilən nəticə
Attempt number 5

for...of: siyahını gəzmək

Çox vaxt dövr siyahının hər elementi üçün nəsə etmək məqsədilə yazılır. Kvadrat mötərizədəki siyahıya massiv deyilir — onu ayrıca dərsdə öyrənəcəyik. for...of dövrü massivin və ya sətrin elementlərini bir-bir götürür; sayğaca ehtiyac qalmır.

JavaScript
const cities = ['Baku', 'Ganja', 'Shaki'];

for (const city of cities) {
  console.log(`I want to visit ${city}`);
}

for (const letter of 'JS') {
  console.log(letter);
}
▸ Gözlənilən nəticə
I want to visit Baku
I want to visit Ganja
I want to visit Shaki
J
S

break və continue

break dövrü dərhal dayandırır, continue isə yalnız cari iterasiyanın qalanını ötürüb növbətisinə keçir. Aşağıdakı kodda cüt ədədlər continue ilə ötürülür, 7-dən böyük ədəd gələndə isə break dövrü bitirir.

JavaScript
for (let i = 1; i <= 10; i++) {
  if (i % 2 === 0) {
    continue;
  }
  if (i > 7) {
    break;
  }
  console.log(i);
}
▸ Gözlənilən nəticə
1
3
5
7
İnteraktiv
Simulyasiya yüklənir…
Xətti axtarış — break ilə dövrün klassik nümunəsi: elementləri bir-bir yoxlayır və tapan kimi dayanır.
DövrNə vaxt seçməli
fortəkrarların sayı bəllidir və ya sayğac lazımdır
whilenə qədər təkrar olacağı əvvəlcədən bəlli deyil
do...whilegövdə ən azı bir dəfə icra olunmalıdır
for...ofmassivin və ya sətrin hər elementi ilə iş görmək lazımdır
Tapşırıq

for dövrü ilə n ədədinin 1-dən 5-ə qədər vurma cədvəlini çap et. Hər sətir belə görünməlidir: 7 x 3 = 21.

Tapşırıq · JavaScript
const n = 7;
// print n x 1 = ... up to n x 5 = ...
▸ Gözlənilən nəticə
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35

Əsas fikirlər

  • for dövrünün üç hissəsi var: başlanğıc, şərt və addım.
  • while şərt doğru olduqca təkrarlanır; do...while ən azı bir dəfə icra olunur.
  • for...of massivin və ya sətrin elementlərini bir-bir götürür.
  • break dövrü dayandırır, continue növbəti iterasiyaya keçir.
  • Şərtə təsir edən dəyişəni dəyişməyi unutmaq sonsuz dövrə səbəb olur.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
for (let i = 0; i < 5; i++) dövrü neçə dəfə təkrarlanır?