Variant operatoru
Bəzən elə məsələlər olur ki, onların həlli zamanı müəyyən şərt daxilində iki yox, daha çox budaq üzrə əməliyyatları yerinə yetirmək lazım gəlir. Belə hallarda if operatorundan bir neçə dəfə istifadə etmək lazım gəlir ki, bu da proqramın mürəkkəbləşməsinə səbəb olur. Bu çətinliyi aradan qaldırmaq üçün C++ dilində switch variant operatoru vardır. Operatorun yazılış forması aşağıdakı kimidir:
switch (ifadə)
{
case 1-ci qiymət:1-ci operator :break;
case 2-ci qiymət:2-ci operator: break;
case 3-cü qiymət:3-cü operator: break;
…
case n-ci qiymət:n-ci operator: break;
default:operatorı: break;
}
Variant operatoru belə işləyir. Əvvəlcə ifadənin qiyməti hesablanır (bu qiymət tam ədəd olmalıdır). Əgər ifadə 1-ci qiyməti alarsa, onda 1-ci operator yerinə yetirilir. Əgər ifadə 2-ci qiyməti alarsa, onda 2-ci operator yerinə yetirilir və s. Əgər ifadə qiymətlərdən heç birini almazsa, onda default açar sözündən sonrakı operatorlar yerinə yetirilir.
Qeyd etmək lazımdır ki, default açar sözü buraxıla bilər və switch operatorunun ümumi yazılış forması aşağıdakı kimi olar: .
switch(ifadə)
{
case 1-ci qiymət:1-ci operator :break;
case 2-ci qiymət:2-ci operator: break;
case 3-cü qiymət:3-cü operator: break;
…
case n-ci qiymət:n-ci operator: break;
}
Break operatorundan switch operatondan çıxmaq üçün istifadə olunur. Əgər break göstərilməyibsə, onda siyahıdakı növbəti operator yerinə yetiriləcəkdir. Varianr operatorundan istifadə etməklə aşağıdakı məsələni həll edək.
Məsələ. 31 gündən ibarət ayın həftəsinin günlərini ekrana çıxartmalı. Bu zaman ayın birinci gününü bazar ertəsi qəbul etməli.
Proqram mətni aşağıdakı kimi olar:
#include
using namespace std;
int main()
{
unsigned int D,R; // müsbət tam ədədlərin təsviri.
cout <<”\n D=”; cin>>D; // 1-dən 31-ə qədər ədədin daxil edilməsi.
if (D<32) // daxil edilmiş qiymətin yoxlanması.
R=D%7;
switch (R)
{
case 1: cout<<”Bazar ertesi \n”; break;
case 2: cout<<”Chershenbe axshami \n”; break;
case 3: cout<<” Chershenbe \n”; break;
case 4: cout<<”Cume axshemi \n”; break;
case 5: cout<<”Cume \n”; break;
case 6: cout<<”Shenbe \n”; break;
case 0: cout<<”Bazar gunu \n”; break;
default : cout<<”Sehv! \n”; break;
}
return 0;
}
Məsələ. Ayın nömrəsinə əsasən onun adını ekrana çıxartmalı.
#include
using namespace std;
int main()
{
unsigned int m; // müsbət tam ədədin təsviri.
cout <<”m=”; cin>>m;
switch (m)
{
case 1: cout<<”Yanvar \n”; break;
case 2: cout<<”Fevral \n”; break;
case 3: cout<<”Mart \n”; break;
case 4: cout<<”Aprel \n”; break;
case 5: cout<<”May \n”; break;
case 6: cout<<” İyun \n”; break;
case 7: cout<<” İyul \n”; break;
case 8: cout<<” Avqust \n”; break;
case 9: cout<<”Sentyabr \n”; break;
case 10: cout<<” Oktyabr \n”; break;
case 11: cout<<” Noyabr \n”; break;
case 12: cout<<” Dekabr \n”; break;
default : cout<<”Sehv! \n”; break;
}
return 0;
}
Dostları ilə paylaş: |