- •5-AMELIY SABAQ
- •Jumıstıń maqseti: Tarmaqlanıwshı proceslerge baylanıslı ámellerdi orınlaw, shárt operatorların úyreniw. Tańlaw switch operatorlarınan
- •Ámeliy bólim:
- •Bul qalay jumıs isleydi:
- •break úzilis gilt sózi
- •Tańlaw operatorı Switch operatorı.
- •Mısal ushın, kiriw aǵımınan “Process dawam etilsin be?” sorawına paydalanıwshı tárepinen juwap alınadı.
- •Ulıwma alǵanda, tańlaw operatorında break hám default gilt sózlerin isletiw májbúriy emes. Biraq
- •Máselen, joqarıdaǵı mısalda break operatorı bolmasa hám processti dawam ettiriwdi tastıyqlawshı (‘Y’) juwap
- •Tańlaw operatorı sanap ótiliwshi tiptegi turaqlılar menen birgelikte isletilgende nátiyje beredi. Tómendegi programmada
- •Programma orınlanıwında basqarıw tańlaw operatorına kelgende, Reń mánisi Qızıl, Toq_sarı yamasa Sarı bolsa,
Ulıwma alǵanda, tańlaw operatorında break hám default gilt sózlerin isletiw májbúriy emes. Biraq bul jaǵdayda operator mazmunı buzılıwı múmkin. Máselen, default bólegi bolmaǵan jaǵdayda, eger <ańlatpa> hesh bir <turaqlı ańlatpai> menen birdey bolmasa, operator hesh qanday ámel orınlamastan basqarıw tańlaw operatorınan keyingi operatorǵa ótedi. Eger break bolmasa, <ańlatpa> qandayda bir <turaqlı ańlatpai> menen birdey bolǵan jaǵdayda, oǵan sáykes keliwshi operatorlar toparın orınlaydı hám «toqtatpastan» keyingi qatardaǵı operatorlar toparın da orınlawdı dawam etedi.
Máselen, joqarıdaǵı mısalda break operatorı bolmasa hám processti dawam ettiriwdi tastıyqlawshı (‘Y’) juwap bolǵan jaǵdayda ekranǵa
Process dawam etedi! Process juwmaqlanadı!
хabarları shıǵadı hám programma óz jumısın juwmaqlaydı (return operatorınıń orınlanıwı nátiyjesinde).
Tańlaw operatorı sanap ótiliwshi tiptegi turaqlılar menen birgelikte isletilgende nátiyje beredi. Tómendegi programmada reńler gammasın klassifikaciyalaw máselesi sheshilgen.
#include <iostream.h> using namespace std; int main()
{
enum Reńler{Qızıl, Toq_sarı, Sarı, Jasıl, kók, Kúlreń, Fiolet}; Reńler Reń;
//...
switch(Reń)
{
case Qızıl: case Toq_sarı: case Sarı:
cout << ”Íssı gamma saylandı.\n”; break; case Jasıl:
case Kуk: case Kúlreń: case Fiolet:
cout << ”Suwıq gamma saylandı.\n”; break; default:
cout << ”Raduga bunday reńge iye emes.\n”;
}
return 0;
}
Programma orınlanıwında basqarıw tańlaw operatorına kelgende, Reń mánisi Qızıl, Toq_sarı yamasa Sarı bolsa, “Íssı gamma saylandı” xabarı, eger Reń mánisi Jasıl, Kók, Kúlreń yamasa Fiolet bolsa, ekranǵa “Suwıq gamma saylandı” xabarı, eger Reń mánisi sanap ótilgen mánislerden parıqlı bolsa, ekranǵa “Raduga bunday reńge iye emes” xabarı shıǵarıladı hám programma óz jumısın juwmaqlaydı. switch operatorında járiyalaw operatorları da ushırawı múmkin. Biraq switch operatorı orınlanıwında «sekirip ótiw» jaǵdayları bolıwı esabına blok ishindegi ayrım járiyalawlar orınlanbawı hám bunıń aqıbetinde programma ishinde qátelik júzege keliwi múmkin:
//...
int k = 0, n = 0; cin >> n; switch(n)
{
int i = 10; //qáte, bul operator orınlanbaydı case 1:
int j = 20; //eger n = 2 bolsa, bul járiyalaw orınlanbaydı
case 2:
k += i + j; //qáte, sebebi i, j ózgeriwshiler belgisiz
}
cout << k; //...