Break, continue hamda goto operatorlari



Yüklə 83 Kb.
tarix25.12.2023
ölçüsü83 Kb.
#161196
Bekimbetov Aral Programalastırıw



Break, continue operatorlari


Reje:



  1. Break operatori

  2. Continue operatori


Break operatorı :[1 (135-137), 3 (45-47), 4 (57) ] Tákirarlaw operatorlarınıń orınlanıwında sonday jaǵdaylar júzege keliwi múmkin, ol jaǵdayda qaysıdur qádemde, tákirarlawdı juwmaǵına jetkizbesten tákirarlawdan shıǵıw zárúrshiligi bolıwı múmkin. Basqasha aytqanda tákirarlawdı «uzish» kerek bolıwı múmkin. Bunda break operatorınan paydalanıladı. Break operatorın tákirarlaw operatorı denesiniń qálegen (zárúr ) jaylarına qoyıw arqalı sol orınlardan tákirarlawdan shıǵıwdı ámelge asırıw múmkin. Itibar beretuǵın bolsaq switch-case operatorınıń túpkilikli mánisine de break operatorın qóllaw arqalı erisilgen.
Ichma - ish jaylasqan tákirarlaw hám switch operatorlarında break operatorı tek ózi jaylasqan bloktan shıǵıw múmkinshiligin beredi.
Tómendegi programmada eki ichma-ish jaylasqan tákirarlaw operatorınan paydalanǵan halda paydalanıwshı tárepinen kiritilgen qanday da sannı 3 hám 7 sanlarına salıstırǵanda qanday aralıqqa túsiwi anıqlanadı. Sırtqı tákirarlawda ''son kiritiń (0-toqtap qalıw ):_'' sorawı beriledi hám juwap juwap_son ózgeriwshisine oqıladı. Eger san noldan ayrıqsha bolsa, ishki tákirarlaw operatorında bul sannıń qanday da túsiwi anıqlanıp, sol haqqında xabar beriledi hám ishki operatorınan shıǵıladı. Sırtqı tákirarlaw daǵı sorawǵa juwap jol menende 0 kiritilse, programma óz jumısın tugatadi.
Bul mısalda sheksiz for tákirarlawınan 1 yamasa 2- shárt orınlanǵanda shıǵıladı,
Másele. Belgisiz pútkil sanlar izbe-izligi 0 mánisi menen tawsıladı. Bul jerde 0 izbe-izlik hadi esaplanbaydı. Izbe-izlikti kemeymeytuǵın halda tártiplengen yamasa joqlıǵı anıqlansın.
Programma jumısqa túskende, basında izbe-izliktiń birinshi hadi bólek oqıp alınadı (Ai ózgeriwshisine). Keyin Ai mánisi nolge teń bolmaǵansha tákirarlaw operatorı ámel etedi. Tákirarlaw denesinde Ai mánisi aldınǵı baha retinde Ai_1 ózgeriwshisinde eslab qalınadı hám náwbettegi had Ai ózgeriwshisine oqıladı. Eger aldınǵı had náwbettegi haddan úlken bolsa, break operatorı járdeminde tákirarlaw procesi uziledi hám basqarıw tákirarlawdan keyingi shárt operatorına ótedi. Bul jerdegi shárt operatorları mazmunı tómendegishe eger Ai_1 noldan ayrıqsha bolsa, izbe-izliktiń keminde bir hadi kiritilgen boladı (izbe-izlik ámeldegi) hám aqırǵı kiritilgen had tekseriledi. Óz gezeginde eger Ai noldan ayrıqsha bolsa, bul jaǵday had1 ar ortasında kamaymaslik shárti atqarılmaǵanlıǵı sebepli hadlarni
kirgiziw procesi úzilgenligin ańlatadı jáne bul haqqında xabar baspadan shıǵarıladı. Keri jaǵdayda izbe-izlikti kamaymaydigan halda tártiplengen boladı.
Continue operatorı :[1 (135-137), 3 (47-48), 4 (58) ]continue operatorı tap break operatorı sıyaqlı tákirarlaw operatorı denesin orınlawdı toqtatadı, lekin tákirarlawdan shıǵıp ketmasdan keyingi qádemine «sakrab» ótiwin tayınlaydı.
Continue operatorın qollanıwına mısal jol menende 2 hám 50 sanlar aralıǵindaǵı túpkilikli sanlardı tabatuǵın programma tekstin keltiremiz.
Tuwrıdan-tuwrı cikl denesiniń aqırına ótiwge múmkinshilik beredi, onıń astındaǵı barlıq kodlardı ótkerip jiberedi. Bul ámeldegi iteratsiyani múddetinen aldın tugatmoqchi bolǵan jaǵdaylarda paydalı bolıp tabıladı. Mısalı,:

#include


int main()
{
for (int count = 0; count < 20; ++count)
{
// Eger nomer tolıq 4 ke bólingen bolsa, ol jaǵdayda dawam etiwden keyin bul iteratsiyadagi barlıq kodtı ótkerip jiberiń
if ((count % 4) == 0)
continue; // Biz hámme zattı ótkerip jiberemiz hám cikldıń aqırına ótemiz
// Eger nomer tolıq 4 ke bólindise, kodtı orınlaw dawam etedi
std::cout << count << std::endl;
// Dawam etiw bayanatınan keyin orınlaw noqatı bul erda háreket etedi
}
return 0;
}

For ciklı bolsa, esaplagichning ósiw/pasayish bólegi dawam etkennen keyin de ámelge asıriladı (sebebi ósiw/pasayish cikl denesinen sırtda júz boladı ).


#include


int main()
{
int count(0);
while (count < 10)
{
if (count == 5)
continue; // Biz cikl denesiniń aqırına ótemiz
std::cout << count << " ";
++count;
// Dawam etiw bayanatınan keyin orınlaw noqatı bul jerde háreket etedi
}
return 0;
}

Programma 5 ten tısqarı 0 den 9 ǵa shekem bolǵan barlıq nomerlerdi shıǵarıwı kerek. Lekin tiykarınan :


hám keyin cikl sheksiz boladı. Esaplaw ma`nisi 5 ke aynalǵanda, if operatorınıń shárti ras boladı, keyin dawam etedi hám biz nomerdiń shıǵıwı hám esaplagichning kóbeyiwin shetlep ótip, keyingi iteratsiyaga ótemiz. Count ózgeriwshisi hesh qashan kóbeymeydi. Nátiyjede, keyingi iteratsiyada count ózgeriwshisi ele da 5 mánisi menen qaladı hám if sóz dizbegi ele da haqıyqıy bolıp qaladı hám cikl sheksiz boladı.

jáne bul erda tuwrı sheshim bar, lekin do while Loop járdeminde:


#include
int main()
{
int count(0);
do
{
if (count == 5)
continue; // Biz cikl denesiniń aqırına ótemiz
std::cout << count << " ";
// Dawam etiw bayanatınan keyin orınlaw noqatı bul erda háreket etedi
} while (++count < 10); // Bul kod Loop denesinen sırtda bolǵanı ushın atqarıladı
return 0;
}

Dawam etiw sóz dizbegin while yamasa do while ciklleri menen isletiwde ıqtıyat bolıń. Bul cikllerde esaplagichlarning kóbeyiwi tuwrıdan-tuwrı cikl denesinde ámelge asırılǵanlıǵı sebepli, dawam etiw waqtınan paydalanıw cikldıń sheksiz bolıwına alıp keliwi múmkin! Mısalı,:


Keltirilgen programmada qoyılǵan másele ichma-ish jaylasqan eki tákirarlaw operatorları járdeminde sheshilgen. Birinshi tákirarlaw operatorı 2 den 50 ge shekem sanlardı payda etiwge xızmet etedi. Ishki tákirarlaw bolsa hár bir payda etinayotgan sannı 2 sanınan tokı sol sannıń yarımına shekem bolǵan sanlarǵa bolıp, qaldıǵın tekseredi, eger qaldıq 0 sanınan parqlı bolsa, náwbettegi sanǵa bolıw dawam etedi, keri jaǵdayda bólinedi ózgeriwshisine true baha berip, ishki tákirarlaw úziledi (san óziniń yarımına shekem bolǵan qanday da sanǵa bolınar eken, sonday eken ol túpkilikli emes hám keyingi sanlarǵa bolıp tekseriwge hájet joq ). Ishki tákirarlawdan shıqqannan keyin bólinedi mánisi false bolsa (! bólinedi), san túpkilikli boladı hám ol baspadan shıǵarıladı.
Biraq, break hám continue bayanatlarınan aqılǵa say paydalanıw programmadaǵı cikllerdiń oqılıwın jaqsılawı múmkin, usınıń menen birge ishki bloklar sanın azaytadı hám cikllerdi orınlaw ushın quramalı logikaǵa mútajlik bar. Mısalı, tómendegi programmanı kórip shıǵıń:

#include


int main()
{
int count(0); // Biz cikldıń tákirarlanıw sanın esaplaymiz
bool exitLoop(false); // Biz cikldıń orınlanıwın qadaǵalaw etemiz
while (!exitLoop)
{
std::cout << "Enter 'e' to exit this loop or any other key to continue: ";
char sm;
std::cin >> sm;
if (sm == 'e')
exitLoop = true;
else
{
++count;
std::cout << "We've iterated " << count << " times\n";
}
}
return 0;
}
Bul programma kósheden shıǵıw ushın logikalıq ózgeriwshiden, sonıń menen birge, paydalanıwshı shıǵıw belgisinen paydalanmasa, jumısqa túsetuǵın ishki bloktan paydalanadı.

Biraq kóbirek oqılıwı múmkin bolǵan versiya, biraq break operatorınan paydalanıw :


#include
int main()
{
int count(0); // Biz cikldıń tákirarlanıw sanın esaplaymiz
while (true) // Eger paydalanıwshı onı tugatmasa, cikldı orınlaw dawam etedi
{
std::cout << "Enter 'e' to exit this loop or any other key to continue: ";
char sm;
std::cin >> sm;
if (sm == 'e')
break;
++count;
std::cout << "We've iterated " << count << " times\n";
}
return 0;
}

Bul jerdi (bir break operatorı menen) biz logikalıq ózgeriwshiden (sonıń menen birge, ne ushın hám qayda isletiliwin túsiniwden) hám ishki bloklı else operatorınan paydalanıwdan qashtıq

Ámeldegi ózgeriwshiler hám ishki bloklar sanın kemeytiw kodtı oqıw hám túsiniwdi break yamasa continue bayanatlarına qaraǵanda talay jaqsılaydı. Usınıń sebebinen, olardan aqılǵa say paydalanıw maqul túsetuǵın dep esaplanadı.




Ádebiyatlar


1. Харви Дейтел, Пол Дейтел. КАК ПРОГРАММИРОВАТЬ НА С++. М-2001, 1037c
2. Джефф Элджер. БИБЛИОТЕКА ПРОГРАММИСТА С++. М-2004, 300 с.
3. Madraximov Sh. F., Gaynazarov S. M. “C++ tilida programmalash asoslari” Toshkent-2009.-183 bet.
4. Елена Кондратюк. ТРЮКИ И ЭФФЕКТЫ С++. Москва – Санкт – Петербург -…-2006. 400 с.
5. Учебник по языку С++ в задачах и примерах. Электронный учебник.
6. www.ziyonet.uz

Yüklə 83 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə