6.10. Seçim operatoru Operatorun formatı aşağıdaki kimidir:
Switch(tamqiymətli ifadə) {case sabit1: operatorların siyahısı; case sabit2: operatorların siyahısı; . . . default: operatorların siyahısı;
}
Axrıncı default operatoru iştirak etməyə bilər. Operatorun yerinə yetirilmə qaydası aşağıdaki kimidir:
İfadə hesablanır.
Alınan qiymət case işci sözündən sonra yazılan sabitlərlə ardıcıl olaraq müqayisə edilir. Birinci üst-üstə düşmə halında iki nöqtədən sonra gələn operatorlar yerinə yetirilir.
Əgər ifadənin qiyməti sabitlərin heç biri ilə üst-üstə düşmürsə onda default-dan sonra gələn operatorlar yerinə yetirilir.
Növbəti operatorların yerinə yetirilməsinin üzərindən keçmək üçün çıxış və ya keçid operatorlarından istifadə etmək lazımdır.
Tələbənin biliyinin ədədi qiymətini ona ekvivalenti olan sözlərlə əvəz edən proqram fraqmentinə baxaq. Məsələ, 5-“əla”, 4-“yaxşı”, 3-“kafi”, 2-“qeyri-kafi”. Proqram aşağıdaki kimi olar:
#include using name namespace std; void main ( ) {int bol; cout <<”\n qiyməti daxil edin:”; Cin>>bol; switch(bol) {case 2: cout<<”\t bu qeyri-kafidir!\n”; break; case 3: cout<<”\t bu kafidir!\n”; break; case 4: cout<<”\t bu yaxşıdır!\n”; break; case 5: cout<<”\t bu əladır!\n”; break; default: cout<<”\t belə qiymət yoxdur!\n; } } Break operatoru seçmə operatorunun yekunlaşdığını bildirir, yəni digər budaqlara keçid baş vermir. Əgər bütün budaqlardan break operatorunu götürsək düzgün nəticə alınmaz.
Məsələ, qiyməti daxil edin: 3
Bu halda aşağıdaki səhv nəticələr alınar:
Bu kafidir!
Bu yaxşıdır!
Bu əladır!
Belə qiymət yoxdur!
Seçmə operatorunda budaqlar üzrə yerinə yetirilmənin aşağıdaki misalda göstərildiyi kimi də təşkil etmək olar. Aşağıdaki proqram fraqmentində x-həqiqi ədədin n-ci dərəcədən tam qüvvətə yüksəldilməsi göstərilmişdir. n .
y=1.0; n=5; x=2.5; switch (n) {case 5: y=y*x; case 4: y=y*x; case 3: y=y*x; case 2: y=y*x; case 1: y=y*x; cout<<”y=”< default: cout<<”n ədədi 5-dən böyükdür”;}