1. Dövrələr həyatımızda
Həyatımızda çox zaman eyni tipli əməliyyatları dəfələrlə yerinə yetirmək lazım olur. Məsələn, mən çox səhifəli bir sənədi skan etmək istəyirəm. Onda eyni əməliyyat ardıcıllığını təkrar-təkrar yerinə yetiririk:
- Birinci səhifəni skanerlə qoymaq
- Skan et düyməsini basmaq
- Növbəti səhifəni qoymaq
Bunu əl ilə etmək çətindir. Yaxşı olardı ki, bu prosesi bir şəkildə avtomatlaşdırmaq mümkün olsun.
Başqa bir misal: mən e-poçt qutusundakı bütün oxunmamış mesajları spam olaraq qeyd etmək istəyirəm. Bunu vaxtilə bir-bir seçib spam olaraq qeyd etmək lazım idi.
Amma proqramlaşdırıcılar tənbəl insanlardır, buna görə də bu funksiyanı çoxdan avtomatlaşdırıblar: sadəcə istənilən siyahını seçirsiniz və "spam olaraq qeyd et" düyməsini basırsınız, və sizin e-poçt müştəriniz həmin siyahıdan keçərək hər bir məktubu spam qovluğuna köçürür.
Burada nə deyək? Kompüter və ya proqram yüzlərlə və minlərlə rutin əməliyyatı bir kliklə edəndə çox rahatdır. İndi siz də bunu öyrənəcəksiniz.
2. while
Döngüsü
if-else operatoru proqramlaşdırma imkanlarımızı ciddi şəkildə genişləndirdi: artıq müxtəlif vəziyyətlərdə fərqli əməliyyatları yerinə yetirən proqramlar yaza bilirik. Amma proqramlarımızı daha da güclü edəcək başqa bir şey var — bu döngülərdir.
Java-da 4 növ döngü var: while
, for
, for-each
və do-while
. İndi onlardan ən birincisini nəzərdən keçirəcəyik.
while
döngü operatoru çox sadədir və cəmi iki hissədən ibarətdir: şərt və döngü korpusu. Döngü korpusu şərt true
olduğu müddətdə təkrar-təkrar icra olunur. while
döngüsünün ümumi görünüşü belədir:
while (şərt)
əmr;
while
döngüsünün bir əmrlə yazılışı
while (şərt)
{
əmrlər bloku
}
while
döngüsünün əmrlər bloku ilə yazılışı
Hər şey çox sadədir. Əmr və ya əmrlər bloku şərt true olduğu müddətdə təkrar-təkrar icra olunur.
Bu belə işləyir: əvvəlcə şərt yoxlanılır, əgər o doğrudursa, döngü korpusu (əmr və ya əmrlər bloku) icra olunur, sonra yenidən şərt yoxlanılır və yenə döngü korpusu icra olunur. Bu, şərt yalançı olana qədər davam edir.
Əgər şərt həmişə doğru olacaqsa, proqram heç vaxt dayanmayacaq və döngünü həmişə icra edəcək.
Amma ilk dəfə şərt yalançı olursa, döngü korpusu heç vaxt icra olunmayacaq.
3. Dövr nümunələri
Burada dövrlərin istifadəsinə dair bir neçə praktiki misal var.
Kod | İzah |
---|---|
|
Ekranda 5 sətir göstəriləcək: |
Kod | İzah |
---|---|
|
Ekranda 10 sətir göstəriləcək: |
Kod | İzah |
---|---|
|
Proqram klaviaturadan yalnız rəqəmləri oxuyacaq, rəqəm daxil etdikcə bu proses davam edəcək. |
Kod | İzah |
---|---|
|
Proqram ekranda C hərfini sonsuz olaraq yazacaq. |
Kod | İzah |
---|---|
|
Proqram klaviaturadan yazıları oxuyacaq, nə qədər ki, |
Yuxarıdakı nümunədə equals()
funksiyası yazıları müqayisə etmək üçün istifadə olunur. Əgər yazılar eynidirsə, funksiya nəticə olaraq true
qaytarır, əks halda false
.
4. Döngü içərisində döngü
İf operatoru ilə tanışlıq zamanı görmüşdünüz ki, bir neçə if operatorunun birləşdirilməsi ilə mürəkkəb məntiq yaradmaq olar. Başqa sözlə, bir if
-in içində başqa if
işlətmək olar.
Döngülərlə də eyni şeyi etmək olar. Döngü içərisində başqa bir döngü yazmaq üçün, birinci döngünün gövdəsində ikinci döngünü yazmaq lazımdır. Bu təxminən belə görünəcək:
while (xarici döngünün şərti)
{
while (daxili döngünün şərti)
{
komanda bloku
}
}
while
döngüsü (komanda
bloku ilə) başqa bir
while
döngüsünün içində
Gəlin, üç məsələni araşdıraq.
Məsələ 1. Tutaq ki, ekrana 4 dəfə Ana
sözünü yazdıran proqram yazmaq istəyirik. Bunun üçün döngü tam uyğundur. Kod təxminən belə görünəcək:
Kod | İzah |
---|---|
|
Ekranda 4 sətr belə görünəcək: |
Məsələ 2. Eyni sətrdə 5 dəfə A
hərfini çap edən proqram yazmaq istəyirik. Bunun üçün yenə də döngüdən istifadə edəcəyik. Kod belə olacaq:
Kod | İzah |
---|---|
|
println yerinə print yazırıq, çünki yoxsa hər bir A hərfi ayrı sətirdə olacaq.Ekranda belə görünəcək: |
Məsələ 3. Ekrana 4 sətrdən və 5 sütundan ibarət olan A
hərflərindən ibarət düzbucaqlı çap etmək istəyirik. Bunun üçün artıq bir-birinin içində olan döngülərdən istifadə edəcəyik. Birinci nümunədən istifadə edib, kodu dəyişdiririk:
Kod | İzah |
---|---|
|
Xarici döngü bənövşəyi rəngdə göstərilmişdir və döngü sayını hesablamaq üçün n dəyişənindən istifadə edir.Daxili döngü yaşıl rəngdə göstərilmişdir və döngü sayını hesablamaq üçün m dəyişənindən istifadə edir.Daxili döngü bitdikdən sonra kursoru yeni sətrə keçirmək üçün ayrıca komanda əlavə edilməlidir. Yoxsa proqramın çap etdiyi bütün hərflər bir sətrdə olacaq. Ekranda belə görünəcək: |
Xarici və daxili döngülər üçün fərqli dəyişənlərdən istifadə etmək lazımdır. Həmçinin daxili döngüdən sonra System.out.println()
əlavə etmək lazım idi, çünki o, A
hərflərini bir sətrdə çap edir və bütün hərflər çap olunduqdan sonra kursoru yeni sətrə keçirmək lazım olur.
5. Döngülərin müqayisəsi: Java vs Pascal
Çoxunuz məktəbdə Pascal öyrənmisiniz, buna görə də materialı daha aydın başa düşməyiniz üçün Pascal dilindəki while
döngüsünü Java-dakı ilə müqayisə edəcəyik. Əgər Pascal dilini bilmirsinizsə, bu materialı sadəcə keçə bilərsiniz.
Pascal | Java |
---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION