1. if else operatoru
Proqramlar xarici şərait dəyişsə belə, hamısı eyni şeyi etsəydi, onlardan çox az fayda olardı. Proqram müxtəlif vəziyyətlərə uyğunlaşmağı bacarmalıdır: bəzi hallarda bir hərəkəti, digərlərində isə başqa hərəkəti yerinə yetirməlidir.
Java-da bu, şərt operatoru ilə — şərtin doğruluğundan asılı olaraq müxtəlif əmrlər bloklarını icra etməyə imkan verən if və else açar sözləri ilə həyata keçirilir.
Şərt operatoru üç hissədən ibarətdir: şərt, əmr 1 və əmr 2. Əgər şərt doğru olarsa, əmr 1 icra edilir, əks halda əmr 2 icra edilir. Əmrlər heç vaxt eyni anda icra olunmur. Operatorun ümumi görünüşü belədir:
if (usloviye)
komanda1;
else
komanda2;
if-else
if «əgər», else isə «əks halda» deməkdir. İnsan dilində bunu belə yazmaq olar:
Esli usloviye istinno, to
vypolnit’ komanda1;
inache
vypolnit’ komanda2;
if-else insan dilində
Nümunələr:
// Ekrana bu yazı çıxacaq: Siz hələ uşaqsınız
int age = 17;
if (age < 18)
System.out.println("Siz hələ uşaqsınız");
else
System.out.println("Siz artıq böyüksünüz");
// Ekrana bu yazı çıxacaq: İlıqdır
int temperature = 5;
if (temperature < 0)
System.out.println("Çöldə şaxtadır");
else
System.out.println("İlıqdır");
// Ekrana bu yazı çıxacaq: Sürücülük vəsiqəsinə imtahan verə bilərsiniz
int age = 18;
if (age == 18)
System.out.println("Sürücülük vəsiqəsinə imtahan verə bilərsiniz");
else
System.out.println("Maşın üçün pul yığa bilərsiniz");
2. Əmrlər bloku
Əgər şərt ödənildikdə (və ya ödənilmədikdə) proqramınızın bir neçə əmri yerinə yetirməsini istəyirsinizsə, onları əmrlər blokunda birləşdirə bilərsiniz.
Əmrləri bir bloka birləşdirmək üçün onları fiqurlu mötərizələrə «bükmək» lazımdır. Ümumi halda bu belə görünür:
{
komanda1;
komanda2;
komanda3;
}
Blokda əmrlərin sayı istənilən qədər ola bilər. Hətta sıfır da.
if-else operatoru ilə əmrlər blokunun birlikdə istifadəsinə nümunələr:
// Ekrana bu yazı çıxacaq: Sən hələ uşaqsan. Böyüklərlə mübahisə etmə
int age = 17;
if (age < 18)
{
System.out.println("Sən hələ uşaqsan");
System.out.println("Böyüklərlə mübahisə etmə");
}
else
{
System.out.println("Siz artıq böyüksünüz");
System.out.println("Eh, bu gənclik də");
}
// Ekrana bu yazı çıxacaq: İlıqdır
int temperature = 5;
if (temperature < 0)
{
System.out.println("Çöldə şaxtadır");
System.out.println("Papağını geyin");
}
else
System.out.println("İlıqdır");
// Boş əmrlər bloku icra olunacaq. Ekrana heç nə çıxmayacaq.
int age = 21;
if (age == 18)
System.out.println("Sürücülük vəsiqəsini almaq olar");
else
{
}
3. if operatorunun qısa sintaksisi
Əgər else blokunda kod yoxdursa, onu buraxmaq olar. O zaman if operatoru bu cür görünəcək:
if (usloviye)
{
komanda1;
}
if
Nümunə:
int age = 19;
if (age >= 18)
{
System.out.println("Siz artıq yetkinsiniz!");
}
Bu necə işləyir?
Əgər şərt doğrudursa, blok icra olunur. Yalandırsa, heç nə baş vermir — proqram davam edir.
Proqramda else bloku var, amma o boşdur (fiqurlu mötərizələr arasında heç bir əmri yoxdur). Onu sadəcə silə bilərsiniz: proqramın davranışı dəyişməyəcək.
4. Şərtlərin birləşdirilməsi: else if
Bəzən yalnız «bəli/xeyr» yox, bir neçə variantdan seçim etmək lazım olur. Burada else if zənciri köməyə gəlir:
if (usloviye1)
{
// usloviye1 doğru olduqda icra olunur
}
else if (usloviye2)
{
// usloviye2 doğru, usloviye1 isə yalan olduqda icra olunur
}
else
{
// Yuxarıdakı şərtlərin heç biri uyğun gəlmədikdə icra olunur
}
Nümunə:
int hour = 13;
if (hour < 12)
{
System.out.println("Sabahınız xeyir!");
}
else if (hour < 18)
{
System.out.println("Gününüz xeyir!");
}
else
{
System.out.println("Axşamınız xeyir!");
}
Burada nə baş verir?
- Vaxt 12-dən əvvəldirsə — səhərdir.
- 12-dən 18-ə qədərdirsə — gündüzdür.
- Daha çoxdursa — axşamdır.
- Proqram yalnız BİR variantı seçir! Hər hansı şərt uyğun gələn kimi — qalanları ümumiyyətlə yoxlanmır.
5. Sxematik illüstrasiya: budaqlanmanın blok-sxemi
Bu, blok-sxem şəklində belə görünür:
Bir neçə şərt olduqda:
Bu, masaüstü rol oyunlarındakı yolayrıclarını çox xatırladır: sola gedirsən — bir şey, sağa — başqa şey, düz — daha nəsə!
6. Hansı şərtləri yoxlamaq olar?
if-dən sonra dairəvi mötərizələrin içində nəticəsi true və ya false olan MƏNTİQİ ifadə olmalıdır.
Əsas müqayisə operatorları:
| Operator | Mənası | Nümunə |
|---|---|---|
|
Bərabərdir | |
|
Bərabər deyil | |
|
Böyüktür | |
|
Kiçikdir | |
|
Böyük və ya bərabərdir | |
|
Kiçik və ya bərabərdir | |
Şərtlərə nümunələr:
if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)
Qeyd: = (bir işarə) — mənimsətmədir. == (iki işarə) — müqayisədir. Bu, yeni başlayanlar arasında ən məşhur səhvlərdən biridir! Əgər təsadüfən belə yazsanız:
if (x = 5) // XƏTA!
— kompilyator xəta verəcək, və tamamilə haqlı olacaq.
7. Şərtlərdə sətirlərlə işləmək
== ilə müqayisə Java-da ədədlər üçün düzgün işləyir. Kəsr ədədləri == ilə müqayisə etmək məsləhət deyil, sətirləri isə == ilə müqayisə etmək olmaz — sətirlər üçün equals() metodundan istifadə edin; o, sətirlərin məzmununu (yoxsa istinadları deyil) müqayisə edir.
Sətirlərin müqayisəsinin incəlikləri barədə daha sonra danışacağıq. Sətirləri düzgün müqayisə etmək isə — aşağıdakı nümunədə:
String password = console.nextLine();
if (password.equals("qwerty")) // equals() metodunu çağırırıq və ona ikinci sətiri ötürürük
{
System.out.println("Siz daxil oldunuz!");
}
8. Xüsusiyyətlər və incəliklər:
Fiqurlu mötərizələr: lazımdır, yoxsa yox?
Əgər if və ya else-dən sonra yalnız bir əmrdirsə, fiqurlu mötərizələri buraxmaq olar:
if (age > 18)
System.out.println("Yaşınız 18-dən böyükdür!");
// Amma onları HƏR ZAMAN yazmaq daha təhlükəsizdir:
if (age > 18)
{
System.out.println("Yaşınız 18-dən böyükdür!");
}
Məsləhət: həmişə mötərizələrlə yazın. Bu, xüsusən kodu genişləndirəndə bir çox xətadan sizi qoruyacaq.
Məntiqi səhvlər: şərtlərdə diqqətli olun!
Belə yazsanız:
if (age > 18)
System.out.println("Yaşınız 18-dən böyükdür!");
System.out.println("Xoş gəlmisiniz!");
Kompilyator bu kodu belə oxuyacaq:
if (age > 18)
{
System.out.println("Yaşınız 18-dən böyükdür!");
}
System.out.println("Xoş gəlmisiniz!");
İkinci sətir həmişə icra olunacaq — hər iki sətirin «budaq» içində olması üçün mötərizələr lazımdır.
GO TO FULL VERSION