While tákirarlaw operatorı. Tayansh sóz dizbegiler:Tákirarlaw operatorlari, for tákirarlaw operatorı, while tákirarlaw operatorı.
Do-while tákirarlaw operatorı. do-while takrorlash operatorı while operatorınan ayrıqsha túrde aldın operator yamasa bloktı atqaradı, keyin tákirarlaw shártin tekseredi. Bul apparat tákirarlaw denesin keminde bir ret atqarılıwın támiyinleydi. Do-while tákirarlaw operatorı tómendegi sintaksisge iye:
do ; while ();
Bunday tákirarlaw operatorınıń keń qollanılatuǵın jaǵdayları bul tákirarlawdı baslamastan turıp, tákirarlaw shártin tekseriwdiń ılajı bolmaǵan jaǵdaylar esaplanadı. Mısalı, qandayda-bir processni dawam ettiriw yamasa toqtatıw haqqındaǵı sorawǵa juwap alıw jáne onı tekseriw zárúr bolsın. Kórinip tuıptı, processti baslamastan aldın bul sorawdı beriwdiń mánisi joq. Hesh bolmaǵanda tákirarlaw procesiniń bir qádemi ámelge asırılǵan bolıwı kerek:
#include
int main ()
{
tırtıq juwap ;
do
{
…// programma denesi
cout<<'' processni toqtap qalıwısh (N):_'';
cin>>javob;
}
while (juwap! =N)
return 0;
}
Programma “ processti toqtap qalıwshı (N):_''sorawına (N) juwabı kiritilmegenshe dawam etedi.
Bul operator da sheksiz tákirarlanıwı múmkin:
do; while (1);
Másele. Hár qanday 7 úlken pútin sandaǵı pul muǵdarın 3 hám 5 sumlıqlarda beriw múmkinligi tastıyıqlansin. Qoyılǵan másele p=3 n+5 m tenglamasi qanatlantıratuǵın m, n sanlar juplıqların tabıw máselesi bolıp tabıladı (p-pul muǵdarı ). Bul shárttiń atqarılıwın m hám n ózgeriwshileriniń múmkin bolǵan bahalarınıń barlıq kombinatsiyalarında tekseriw zárúr boladı.
#include
int main ()
{
unsigned int pul; //pul- kirgizetuǵın pul muǵdarı
unsigned n3, m5; //n-3 sumlıqlar, m-5 sumlıqlar sanı
bool qate=fa1 se; //pul manisin kiritilgendegi qátelik
do
{
if (qáte) cout<<''kiritilgen pul manisi 7 den kishi! '';
qate=true ; //keyingi tákirarlaw qáte esaplanadı
cout<<''\npul manisin kiritiń (>7):'';
cin>>pul;
}
while (pul<=7); // tokı 7 sanınan úlken san kiritilgenshe
n3=0 ; //birorta da 3 sumlıq joq
do
{
m5=0; // qandayda-bir de 5 sumlıq joq
do
{
if (3*n3+5*m5==pul)
cout<
m5++ //5 so'mliklar bittaga asıriladı
}
while (3*n3+5*m5<=pul);
n3++; //3 sumlıqlar birge asıriladı
}
while (3*n3<=pul);
return 0;
}
Programma pul manisin kirgiziwdi so'raydi (pu1 ózgeriwshige). Eger pul manisi 7 sanınan kishi bolsa, bul haqqında xabar beriledi hám tákirar túrde baha kirgiziw talap etiledi. Pul manisi 7 den úlken bolǵanda, 3 hám 5 sumlıqlardıń múmkin bolǵan tolıq kombinatsiyasın ámelge asırıw ushın ishpe -ish tákirarlawlar ámelge asıriladı. Sırtqı tákirarlaw n3 (3 sumlıqlar muǵdarı ) boyınsha, ishki tákirarlaw bolsa m5 (5 sumlıqlar muǵdarı ) boyınsha, tokı bul muǵdardaǵı pullar manisi pul manisinen asıp ketpegenshe dawam etedi. Ishki tákirarlawda m5 ózgeriwshisiniń hár bir manisinde «3*n3+5*m5==pu1»sharti tekseriledi, eger ol orınlı bolsa, sheshim variantı retinde n3 hám m5 ózgeriwshiler bahaları baspadan shıǵarıladı.
Pul manisi 30 sum kiritilgende, ekranga
0 3 sumlıq +6 5 sumlıq shıǵarıladı
5 3 sumlıq +6 5 sumlıq
10 3 sumlıq +0 5 sumlıq
sheshim variantları baspadan shıǵarıladı.
Do while ańlatpası while strukturasına uxsas bolıp tabıladı. Bir ayırmashılıǵı sonda while da shárt basına tekseriledi. Do while da bolsa tákirarlanıw denesi eń keminde bir ret atqarıw kóredi hám shárt strukturanıń sońında test etiledi. Shárt true bolsa blok taǵı tákirarlanadı. Shárt false bolsa do while ańlatpasınan shıǵıladı. Eger do while ishinde qaytarılıwı kerek bolǵan ańlatpa bir dana bolsa {} qawıslardıń keregi joq bolıp tabıladı. Tómendegishe boladı :
do
ańlatpa ;
while (shárt);
Biraq {} qawıslardıń joq ekenligi programmistti aljastırıwı múmkin. Sebebi qawsırmasız do while ápiwayı while dıń baslanıwına uxsaydi. Bunı aldın alıw ushın {} qawıslardı mudamı qoyıwdı usınıs etemiz.
int k = 1;
do {
k = k * 5;
} while (! (k>1000 ) );
Bul blokda 1000 nan kishi yamasa teń bolǵan eń úlken 5 ke eseli san tawılsın. while shártin azraq ózgertip berdik,! (not - biykar ) operatorınıń islewin mısalda kórsetiw ushın. Eger ápiwayı etip jazatuǵın
bolsaq, while shártiniń kórinisi bunday bolar edi: while (k<=1000 ); Sheksiz tákirarlanıwdı aldın alıw ushın shárt ańlatpasınıń kórinisine úlken itibar beriw kerek. Bir noqatqa kelip shárt true den false ma`nisine ótiwi shárt.
While takirarlaw operatorı “shart qanatlandıradı, jumıs dawam etedi” qaǵıydası boyınsah isleydi. Bunda bool túrine tiyisli mánisti qaytaradı
While(shárt) {
Instrukciya (ameller)
}
Eger shart tekserilgende ras bolsa, instrukciyalar blogı orınlanadı, keri jaǵdayda while programması islewin toqtatadı.
Maselen:
using System;
public class Labels {
public static int Main ( ) {
int i=0;
while(i<10)
i++;
Consol. WriteLine(“i:{0}”,i);
Return 0;
}
}
do while operatorına mısal:
public class Labels {
public static int Main ( ) {
int i=0;
do {
Console.WriteLine(“i:{0}”,i);
I++;
}
while(i<10);
return 0;
}
}