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.
Switch operatoru ifadənin qiymətini yuxarıdan aşağı case sözlərinin qarşısında dayanan sabitlərlə yoxlayır. Əgər qiymətə bərabər olan sabit olarsa onda iki nöqtədən sonra gələn bütün əmrlər yerinə yetirilir. Break rast gəlinən yerdə switch operatoru işini dayandırır və proqramda switch -dən sonra gələn əmr yerinə yetirilir. Switch operatoru ilə bağlı mühüm məqamlardan biri də odur ki, case ifadələrində qiymət kimi ancaq tam(int) və simvol tipli dəyişənlərdən istifadə etmək olar. Default seçimindən istifadə etmək vacib deyil. Əgər qiymətlərdən heç biri ödənməsə onda default: seçimində göstərilən əmrlər yerinə yetiriləcək.
Varinat operatorunun ümumi şəkli aşağıdakı kimidir;
switch (keçirici ifadə) {case sabit ifadə1: operatorlar1; case sabit ifadə2: operatorlar 2; ... case sabit ifadə n: operatorlar n; default: operatorlar; } Bu operator yerinə yetirilərkən əvvəlcə keçirici ifadə hesablanır.Burada keçirici ifadə həmişə ya tam sabit, ya da tam qiymət alan hesabi ifadə olmalıdır. Eləcə də case xidməti sözündən sonra gələn sabit ifadələrin tipləri switch sözündəki keçirici ifadənin tipinə gətirilməlidir. Bütün sabit ifadələr müxtəlif qiymətlər almalıdır, lakin eyni tipli olmalıdırlar. Burada switch (...) konstruksiyasından sonra fiqurlu mötərizələrdə yerləşdirilmiş ixtiyari operator aşağıdakı formalı bir və ya bir neçə nişanlarla qeyd oluna bilər.
case sabit ifadə: Əgər keçirici ifadənin aldığı qiymət, operatordakı heç bir sabit ifadənin qiyməti ilə üst-üstə düşmürsə, onda idarəetmə default sözü ilə qeyd olunmuş operatorlara verilir. Operatorda yalnız bu default sözü ola bilər, lakin bu söz operatorda verilməyə də bilər. Operatorlarda default sözü olmadıqda, keçirici ifadənin qiyməti heç bir sabit ifadənin qiyməti ilə üst-üstə düşmədikdə, burada heç bir operator yerinə yetirilmir. Burada case sabit ifadəyə default: nişanları operatorların yerinə yetirilmə ardıcıllığını dəyişdirmir. Əgər operatorda keçid və çıxış nəzərdə tutulmayıbsa, onda burada idarəetmənin verildiyi nişandan başlayaraq ardıcıl olaraq bütün operatorlar yerinə yetiriləcəkdir.
#include using namespace std; main () { char c; cout<< “\nİmtahan qiymetini herfle daxil edin: “; cin>> c; // İmtahan qiymətini daxil edin switch ( c ) // seçim operatorun başlığı { case ‘A’ : cout<<“\nEla”; break; case ‘B’ : cout<<“\nCox yaxsi”; break; case ‘C’ : cout<<“\nYaxsi”; break; case ‘D’ : cout<<“\nQenaetbexsh”; break; case ‘E’ : cout<< “\nKafi”; break; case ‘F’ : cout<< “\nQeyri kafi”; break; default : cout<< “\nBele qiymet yoxdur!”; // susmaya görə } return 0; } • Ç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.
• break operatoru switch operatorun gövdəsindən çıxmaq üçün nəzərdə tutulub. Əgər break operatorları tamamilə silinərsə, onda, məsələn, “A” hərfi daxil olduqda çapa bütün variantlar çıxarılacaqdır.