1. if else operatoru
Proqramlar eyni şeyi həmişə etsəydi, xarici şərait dəyişsə də, onlardan heç bir xeyir olmazdı. Proqram müxtəlif situasiyalara uyğunlaşmağı bacarmalıdır və bəzi hallarda bir əməli, digər hallarda isə başqa əməli etməlidir.
C#-da bu, şərt operatoru ilə həyata keçirilir — xüsusi açar söz, hansı ki, şərtin doğruluğundan asılı olaraq fərqli əmrlər blokunu icra etməyə imkan verir.
Şərt operatoru üç hissədən ibarətdir: şərt, əmr 1 və əmr 2. Əgər şərt doğrudursa (true), əmr 1 icra olunur, əks halda əmr 2 icra olunur. Əmrlər heç vaxt eyni anda icra olunmur. Bu operatorun ümumi görünüşü belədir:
if (şərt)
əmr1;
else
əmr2;
if-else
if "əgər", else isə "əks halda" kimi tərcümə olunur. İnsan dilində bunu belə yazmaq olar:
Əgər şərt doğrudursa, onda
əmr1;
əks halda
əmr2;
if-else insan dilində
Nümunələr:
//Ekrana bu yazı çıxacaq: Sən hələ uşaqsan
int age = 17;
if (age < 18)
Console.WriteLine("Sən hələ uşaqsan");
else
Console.WriteLine("Sən artıq böyüksən");
//Ekrana bu yazı çıxacaq: İsti
int temperature = 5;
if (temperature < 0)
Console.WriteLine("Çöldə şaxtadır");
else
Console.WriteLine("İsti");
//Ekrana bu yazı çıxacaq: Sürücülük vəsiqəsi almaq olar
int age = 18;
if (age == 18)
Console.WriteLine("Sürücülük vəsiqəsi almaq olar");
else
Console.WriteLine("Maşına pul yığmaq olar");
2. Əmrlər bloku
Əgər şərtin icrası (və ya icra olunmaması) zamanı proqramının bir neçə əmri icra etməsini istəyirsənsə, onları əmrlər blokunda birləşdirə bilərsən.
Əmrləri bloka birləşdirmək üçün onları qıvrım mötərizələrə salmaq lazımdır. Ümumi halda belə görünür:
{
əmr1;
əmr2;
əmr3;
}
Blokda istədiyin qədər əmrlər ola bilər. Hətta sıfır da ola bilər.
if-else operatoru və əmrlər blokunun birgə istifadəsi nümunələri:
//Ekrana bu yazı çıxacaq: Sən hələ uşaqsan. Böyüklərlə mübahisə etmə
int age = 17;
if (age < 18)
{
Console.WriteLine("Sən hələ uşaqsan");
Console.WriteLine("Böyüklərlə mübahisə etmə");
}
else
{
Console.WriteLine("Sən artıq böyüksən");
Console.WriteLine("Gör indi gənclər nə gündədir");
}
//Ekrana bu yazı çıxacaq: İsti
int temperature = 5;
if (temperature < 0)
{
Console.WriteLine("Çöldə şaxtadır");
Console.WriteLine("Papaq tax");
}
else
Console.WriteLine("İsti");
//Boş əmrlər bloku icra olunacaq. Ekrana heç nə çıxmayacaq.
int age = 21;
if (age == 18)
Console.WriteLine("Hərbi komissarlığa gəlin");
else
{
}
3. if operatorunun qısa sintaksisi
Əgər else blokunda kod yoxdursa, onu buraxmaq olar. Onda if operatoru belə görünəcək:
if (şərt)
əmr1;
if
Nümunə:
int age = 19;
if (age >= 18)
{
Console.WriteLine("Sən artıq yetkin yaşdasan!");
}
Bu necə işləyir?
Əgər şərt doğrudursa, kod bloku icra olunur. Əgər yalandırsa, heç nə baş vermir — proqram davam edir.
Proqramda else bloku var, amma o boşdur (qıvrım mötərizələr arasında heç bir əmrlər yoxdur). Onu sadəcə silə bilərsən: proqramda heç nə dəyişməyəcək.
4. Şərtlərin birləşdirilməsi: else if
Bəzən sadəcə "bəli/xeyr" yox, bir neçə variantdan birini seçmək lazımdır. Burada else if köməyə gəlir:
if (şərt1)
{
// Şərt1 doğrudursa icra olunur
}
else if (şərt2)
{
// Şərt2 doğrudursa, amma şərt1 yalandırsa icra olunur
}
else
{
// Yuxarıdakı şərtlərin heç biri uyğun gəlmirsə icra olunur
}
Nümunə:
int hour = 13;
if (hour < 12)
{
Console.WriteLine("Sabahınız xeyir!");
}
else if (hour < 18)
{
Console.WriteLine("Gününüz aydın!");
}
else
{
Console.WriteLine("Axşamınız xeyir!");
}
Burada nə baş verir?
- Əgər vaxt 12-dən azdırsa — səhərdir.
- Əgər 12-dən 18-ə qədərdirsə — gündüzdür.
- Əgər çoxdursa — axşamdır.
- Proqram yalnız BİR variantı seçir! Şərt uyğun gələn kimi qalanları yoxlamır.
5. Sxematik illüstrasiya: budaqlanma blok-sxemi
Bu, blok-sxem şəklində belə görünür:
Əgər bir neçə şərt varsa:
Bu, stolüstü rol oyunlarındakı yol ayrıcını çox xatırladır: sola getsən — bir şey, sağa getsən — başqa bir şey, düz getsən — daha bir şey!
6. Hansı şərtləri yoxlamaq olar?
if-dən sonra dəyirmi mötərizələrdə MƏNTİQİ ifadə olmalıdır — nəticəsi true və ya false olur.
Əsas müqayisə operatorları:
| Operator | Məna | Nümunə |
|---|---|---|
| == | Bərabərdir | x == 5 |
| != | Bərabər deyil | x != 10 |
| > | Böyükdür | x > 0 |
| < | Kiçikdir | age < 18 |
| >= | Böyük və ya bərabərdir | score >= 100 |
| <= | Kiçik və ya bərabərdir | count <= 50 |
Şərt nümunələri:
if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)
Diqqət et: = (bir dənə) — mənimsəmədir. == (iki dənə) — müqayisədir. Bu, yeni başlayanlar üçün ən məşhur səhvlərdən biridir! Əgər təsadüfən belə yazsan:
if (x = 5) // SƏHV!
— kompilyator səni danlayacaq və düz də edəcək.
7. Şərtlərdə sətirlərlə işləmək
Yalnız rəqəmləri yox, sətirləri də müqayisə etmək olar:
string password = Console.ReadLine();
if (password == "qwerty")
{
Console.WriteLine("Daxil oldun!");
}
Diqqət: C#-da == ilə sətirlərin müqayisəsi adi hallarda düzgün işləyir, çünki sətirlərin məzmununu müqayisə edir (yalnız obyektin referansını yox). Sətir metodları və lokalizasiya xüsusiyyətlərinə yaxınlaşanda bu barədə daha ətraflı danışacağıq.
8. Xüsusiyyətlər və nüanslar:
Qıvrım mötərizələr: lazımdır, ya yox?
Əgər if və ya else-dən sonra yalnız bir əmrdirsə, qıvrım mötərizələri buraxmaq olar:
if (age > 18)
Console.WriteLine("Sənin yaşın 18-dən çoxdur!");
// Amma HƏR ZAMAN mötərizə yazmaq daha təhlükəsizdir:
if (age > 18)
{
Console.WriteLine("Sənin yaşın 18-dən çoxdur!");
}
Məsləhət: həmişə mötərizə ilə yaz. Bu, xüsusilə kodu genişləndirəndə bir çox səhvdən qoruyacaq.
Məntiqi səhvlər: şərtlərə diqqətli bax!
Əgər belə yazsan:
if (age > 18)
Console.WriteLine("Sənin yaşın 18-dən çoxdur!");
Console.WriteLine("Xoş gəlmisən!");
Kompilyator bu kodu belə oxuyacaq:
if (age > 18)
{
Console.WriteLine("Sənin yaşın 18-dən çoxdur!");
}
Console.WriteLine("Xoş gəlmisən!");
İkinci sətr həmişə icra olunacaq — hər iki sətrin "budaqda" olması üçün mötərizələr lazımdır.
GO TO FULL VERSION