1. Giriş
Təsəvvür elə ki, sənə tapşırıq verilib: ekrana on dəfə «Salam!» çıxartmaq. Əlbəttə, on sətr Console.WriteLine("Salam!"); yaza bilərsən — amma sən artıq while dövrünü bilirsən, ona görə bu iş asan olacaq.
Amma başqa bir dövr də var — for, hansı ki, lazım olan əməliyyatı istədiyin qədər təkrarlayır. Həm də özü sayır!
Tipik bir nümunə belədir:
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Salam!");
}
Bu kod nə edir? O, ekrana «Salam!» sözünü dəqiq 10 dəfə çıxarır. Nə copy-paste, nə də bilək ağrısı.
2. for dövrünün sintaksisi
for dövrü əsasən üç hissədən ibarətdir, hansılar ki, for açar sözündən sonra dəyirmi mötərizədə yazılır:
for (init; şərt; dəyişmə)
{
// Dövrün gövdəsi
}
Gəlin hər elementi bir-bir baxaq:
- Init — adətən sayğac dəyişəni yaradılır, hansı ki, təkrarlamanın başlanğıc nöqtəsidir (int i = 0).
- Şərt — hər iterasiyadan əvvəl yoxlanılır. Əgər doğru olsa — dövrün gövdəsi işləyir. Yalan olsa — dövr bitir. Məsələn, i < 10.
- Dəyişmə — hər iterasiyadan sonra işləyən operator. Adətən sayğacı artırır və ya azaldır (i++).
Bir sxem də çəkə bilərik:
3. for və while müqayisəsi
Bəlkə sənə daha aydın olar ki, for — sadəcə while dövrünün başqa yazılışıdır.
Bizdə belə bir while dövrü var idi:
int i = 0; // Dövr üçün dəyişənin init-i
while(i < 10) // Dövrün davam şərtinin yoxlanması
{
Console.WriteLine(i); // Faydalı əməl (dövrün gövdəsi)
i++; // Sayğacın artırılması
}
Bunu for dövrü kimi də yaza bilərik, sadəcə dövrün idarəedici hissələrini bir yerə yığırıq:
for (int i = 0; i < 10; i++) // Init; Şərt yoxlanışı; Sayğacın artırılması
{
Console.WriteLine(i); // Faydalı əməl (dövrün gövdəsi)
}
Hər iki dövrün işləmə addımları:
- Init int i = 0; dövr başlamazdan əvvəl 1 dəfə işləyir.
- Sonra şərt yoxlanılır i <= 10
- Sonra dövrün faydalı əməli Console.WriteLine(i);
- Sonra sayğac artırılır i++
- Sonra 2-ci addıma qayıdır.
4. for dövrünün istifadə nümunələri
Ən sadə nümunə
Gəlin 1-dən 5-ə qədər ədədləri çıxaraq:
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}
Çıxış:
1
2
3
4
5
Qeyd: əgər i < 5 yazsaydın, sonuncu çıxış 4 olardı.
Əks sayım
Kosmonavt kimi hiss etmək istəyirsən? Gəlin əks sayım edək!
for (int i = 5; i > 0; i--)
{
Console.WriteLine(i);
}
Console.WriteLine("Getdik!");
Çıxış:
5
4
3
2
1
Getdik!
Dövr addımı 1-dən fərqlidir
Sayğacı təkcə 1-ə yox, istənilən başqa ədədə də dəyişmək olar:
for (int i = 0; i <= 10; i += 2)
{
Console.WriteLine(i);
}
// Çıxacaq: 0 2 4 6 8 10
5. for dövrünün variasiyaları
Dövr daxilində bir neçə dəyişən
Bəzən iki dəyişəni eyni anda izləmək rahat olur. Məsələn, ədədləri sağdan sola və soldan sağa çıxaraq:
for (int sol = 1, sağ = 10; sol <= 10; sol++, sağ--)
{
Console.WriteLine($"{sol} {sağ}");
}
Çıxış:
1 10
2 9
3 8
...
10 1
Sonsuz for dövrü
Əgər vəziyyət lap ağırdırsa (məsələn, layihən — IT-də əbədi mühərrikdir), "sonsuz" for dövrü yaza bilərsən:
for (;;) // nə init, nə şərt, nə dəyişmə
{
Console.WriteLine("İşlə, işlə və bir də işlə!");
}
Diqqət: belə dövr yalnız gövdədə break, return və ya throw varsa bitəcək. Səbəbsiz istifadə etmə, yoxsa qədim demon oyanar — "Proses cavab vermir".
GO TO FULL VERSION