1. Giriş
Təsəvvür edin, sizə tapşırıq verilib: ekrana “Salam!” sözünü on dəfə çıxarmaq. Əlbəttə, System.out.println("Salam!"); ilə on sətir yaza bilərsiniz — amma artıq while dövrünü bilirsiniz, deməli bunu problemsiz həll edəcəksiniz.
Ancaq başqa bir dövr də var — for, o, lazım olan əməliyyatı tələb olunan sayda təkrarlayır. Üstəlik, sayma işini özü görür!
Tipik nümunə:
for (int i = 0; i < 10; i++)
{
System.out.println("Salam!");
}
Bu kod nə edir? O, ekrana “Salam!” sözünü dəqiq 10 dəfə çıxarır. Nə kopyala-yapışdır, nə də bilək ağrısı.
2. for dövrünün sintaksisi
for dövrü for açar sözündən sonra mötərizələrdə yazılan üç əsas hissədən ibarətdir:
for (inisializasiya; şərt; dəyişmə)
{
// Dövrün gövdəsi
}
for dövrünün ümumi sintaksisi
Gəlin hər elementi ayrıca izah edək:
- İnisializasiya — adətən təkrarlamaları saymaq üçün sayğac dəyişəninin yaradılması (int i = 0).
- Şərt — hər iterasiyadan əvvəl yoxlanır. Doğrudursa — dövrün gövdəsi icra olunur. Yalandırsa — 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++).
Sxemi çəkə bilərik:
3. for və while müqayisəsi
Bəlkə də belə desəm, daha aydın olar: for — sadəcə while dövrünün başqa yazılış formasıdır.
Belə bir while dövrü var idi:
int i = 0; // Dövr üçün dəyişənin inisializasiyası
while(i<10) // Dövrün davam şərtinin yoxlanması
{
System.out.println(i); // Faydalı hərəkət (dövrün gövdəsi)
i++; // Sayğacın artırılması
}
Bu kodu for dövrü kimi də yaza bilərik — sadəcə dövrün məntiqini idarə edən bütün əməliyyatları bir yerə toplayırıq:
for (int i = 1; i <= 10; i++) // İnisializasiya; Şərtin yoxlanması; Sayğacın artırılması
{
System.out.println(i); // Faydalı hərəkət (dövrün gövdəsi)
}
Hər iki dövrün işləmə addımları:
- İnisializasiya int i = 0; dövr başlamazdan əvvəl cəmi 1 dəfə icra olunur.
- Sonra şərt i <= 10 yoxlanır.
- Daha sonra dövrün faydalı əməli System.out.println(i);
- Ardınca sayğac artırılır: i++
- Sonra 2-ci addıma qayıdılı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++)
{
System.out.println(i);
}
Çıxış:
1
2
3
4
5
Qeyd: əgər i < 5 yazsaydınız, son çıxış 4 olardı.
Geri sayım
Kosmonavt kimi hiss etmək istəyirsiniz? Gəlin geri sayım edək!
for (int i = 5; i > 0; i--)
{
System.out.println(i);
}
System.out.println("Gedək!");
Çıxış:
5
4
3
2
1
Gedək!
Dövrün addımı 1-dən fərqli olduqda
Sayğacı təkcə 1-lə deyil, istənilən başqa ədədlə də dəyişmək olar:
for (int i = 0; i <= 10; i += 2)
{
System.out.println(i);
}
// Çıxış: 0 2 4 6 8 10
5. for dövrünün variasiyaları
Dövrdə bir neçə dəyişən
Bəzən eyni anda iki dəyişəni izləmək rahatdır. Məsələn, ədədləri sağdan sola və soldan sağa yazaq:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
System.out.println(left + " " + right);
}
Çıxış:
1 10
2 9
3 8
...
10 1
Sonsuz for dövrü
Əgər vəziyyət çox “ağır”dırsa (məsələn, layihəniz — IT-də “əbədi hərəkət”), “sonsuz” for dövrü qura bilərsiniz:
for (;;) // nə inisializasiya, nə şərt, nə də dəyişmə
{
System.out.println("İşləmək, işləmək və bir daha işləmək!");
}
Diqqət: belə bir dövr yalnız gövdədə break, return və ya throw varsa bitəcək. Səbəbsiz istifadə etməyin, yoxsa qədim bir iblisi oyada bilərsiniz — “Proses cavab vermir”.
GO TO FULL VERSION