Mövzu 7. Mürəkkəb şərtlər
Sadə şərtlər bir müqayisə operatorundan (<, >, <=, >=, ...) ibarətdir. Bəzən şərtlər 2 və daha çox sadə şərtlərdən ibarət olur. Məsələn, əgər hər hansı bir firma yaşı yalnız 25- 40 arasında dəyişən işçiləri işə götürürsə, onda proqram aşağıdakı kimi yazılmalıdır:
#include #include main()
{
intage;
printf ( “\nYasinizi daxil edin: “); scanf ( “%d”, &age );
if ( 25 <= age && age <=40 ) // mürəkkəbşərt
printf ( “Uyğundur! “ ); else
printf ( “Uyğun deyil! “ ); getch ();
}
Mürəkkəb şərtlər 2 və daha çox sadə şərtlərdən ibarət olurlar. Onlar məntiqi əməliyyat işarələri iləbirləşdirilir:
- VƏ (&&) əməliyyatı (AND). Bu əməliyyatda şərtlər eyni zamanda doğruolmalıdırlar
şərt1 && şərt2
Bu əməliyyatı aşağıdakı doğruluq cədvəli adlanan cədvəllə təsvir etmək olar.
şərt1
|
şərt2
|
şərt1 && şərt2
|
yalan (0)
|
yalan (0)
|
yalan (0)
|
yalan (0)
|
doğru (1)
|
yalan (0)
|
doğru (1)
|
yalan (0)
|
yalan (0)
|
doğru (1)
|
doğru (1)
|
doğru (1)
|
- VƏ YA ( || ) əməliyyatı (OR). Bu əməliyyatda heç olmasa bir şərtin doğru olması tələbolunur.
şərt1 || şərt2 Doğruluq cədvəli aşağıdakı kimidir:
şərt1
|
şərt2
|
şərt1 || şərt2
|
yalan (0)
|
yalan (0)
|
yalan (0)
|
yalan (0)
|
doğru (1)
|
doğru (1)
|
doğru (1)
|
yalan (0)
|
doğru (1)
|
doğru (1)
|
doğru (1)
|
doğru (1)
|
Mürəkkəb şərtlərdə bəzən YOX (ing. NOT) əməliyyatından istifadə edilir (inkaretmə).
! şərt
Məsələn, aşağıdakı şərtlər eynidir:
A>B ! ( A <= B)
Məntiqi və müqayisə əməliyyatlarının yerinə yetirilmə ardıcıllığı (üstünlük dərəcəsi):
mötərizələrdəki əməliyyatlar, sonra...
NOT əməliyyatı, sonra...
müqayisə əməliyyatları >, >=, <, <=, ==, !=, sonra...
&& əməliyyatı, sonra ...
||əməliyyatı
Əməliyyatların ardıcıllığını dəyişmək üçün mötərizələrdən istifadə olunur.
Switch operatoru (çoxvariantlı seçim)
Əgər tam və ya simvol tipli dəyişənin qiymətindən asılı olaraq bir neçə variantdan biri seçilməlidirsə, onda bir-birinin daxilində yerləşən bir neçə if operatorundan istifadə etmək olar, lakin bunun üçün nəzərdə tutulmuş xüsusi switch operatorundan istifadə etmək daha əlverişlidir.
Misal. Klaviaturadan hərflə imtahan qiyməti daxil olunur. Hərflə yazılmış qiymətə əsasən ekrana
imtahan qiymətini yazılı çıxartmaq.
#include #include main ()
{
char c;
printf ( “\nİmtahan qiymetini herfle daxil edin: “ ); scanf ( “%c”,&c); // İmtahan qiymətini daxiledin
switch (c ) // seçim operatorun başlığı
{
case ‘A’ : printf ( “\nEla” ); break;
case ‘B’ : printf ( “\nCox yaxsi” ); break; case ‘C’ : printf ( “\nYaxsi” ); break;
case ‘D’ : printf ( “\nQenaetbexsh” ); break; case ‘E’ : printf ( “\nKafi” ); break;
case ‘F’ : printf (“\nQeyri kafi” ); break;
default : printf (“\nBele qiymet yoxdur!” ); // susmaya görə
}
getch();
}
Çoxvariantlı seçim operatoru – switch başlıqdan və fiqurlu mötərizələrdə yazılmış operatorun gövdəsindən ibarətdir.
Başlıqda switch açar sözündən sonra mötərizələrin içində dəyişənin (tam və ya simvol tipli) adı yazılır. Dəyişənin qiymətindən asılı olaraq bir neçə variantdan seçim başverir.
Hər bir varianta case bölməsi uyğundur. case sözündən sonra dəyişənin mümkün qiymətlərdən biri yazılır və qoşa nöqtələr qoyulur. Əgər dəyişənin qiyməti case-də yazılan qiymətlərin hər hansı ilə üst-üstə düşürsə, onda proqram həmin case bölməsinə keçir və orada olan operatorları yerinəyetirir.
Dostları ilə paylaş: |