while такрорлаш оператори
while такрорлаш оператори оператор ёки блокни такрорлаш шарти ёлғон (false) бўлгунча такрор бажаради. У қуйидаги синтаксисга эга:
while (<ифода>) <оператор ёки блок>;
Агар <ифода> рост қийматли константа ифода бўлса, такрорлаш чексиз бўлади. Худди шундай, <ифода> такрорлаш бошланишида рост бўлиб, унинг қийматига такрорлаш танасидаги ҳисоблаш таъсир этмаса, яъни унинг қиймати ўзгармаса, такрорлаш чексиз бўлади.
while такрорлаш шартини олдиндан текширувчи такрорлаш оператори ҳисобланади. Агар такрорлаш бошида <ифода> ёлғон бўлса while оператори бажарилмасдан чеклаб ўтилади.
Айрим ҳолларда <ифода> қиймат бериш оператори кўринишида келиши мумкин. Бунда қиймат бериш амали бажарилади ва натижа 0 билан солиштирилади (0 – ёлғон). Натижа нолдан фарқли бўлса, такрорлаш давом эттирилади.
Худди for операторидек, ‘,’ ёрдамида <ифода> да бир нечта амаллар синхрон равишда бажариш мумкин. Масалан, сон ва унинг квадратларини чоп қиладиган программада шу ҳолат кўрсатилаган:
#include
int main()
{
int n,n2;
cout<<”Sonni kiriting(0..10):_”;
cin>>n;
n+=1;
while(n-=1, n2=n*n, n>0)
cout<<” n=”<return 0;
}
Программа n сонини камайиш тартибида 1 гача, n сони ва унинг квадратини чоп қилади. Шунга эътибор бериш керакки, шарт ифодасида операторларни ёзилиш кетма–кетлигининг аҳамияти бор, чунки, энг охирги оператор такрорлаш шарти ҳисобланади. Программада n қиймати 0 бўлганда такрорлаш тугайди.
Қуйида келтирилган программада берилган ўнлик соннинг иккилик кўриниши чоп қилиш масаласини ечишда while операторидан қўллаш кўрсатилган.
#include
int main()
{
int sanagich =4;
short son10, jarayon=1;
while (jarayon) // чексиз такрорлаш
{
cout <<”O’nlik sonni kiriting(0..15)_”;
cin >>son10;
cout<<’/n’<while (sanagich)
{
if (son10 & 8) // son102 & 00001000
cout<<1;
else cout <<0;
son10=son10<<1 // разрадларни чапга 1 позицияга суриш
sanagich;
}
cout <<’\n’;
cout<<”Jarayonni to’xtatish (0), davom ettirish (1):_ ”;
cin >> jarayon;
sanagich=4;
}
return 0;
}
Программада ичма–ич жойлашган такрорлаш операторлари ишлатилган. Биринчиси, соннинг иккилик кўринишини чоп қилиш жараёнини давом эттириш шарти бўйича амал қилади. Ички жойлашган иккинчи такрорлаш операторида ҳар қандай 0 дан 15 бўлган сонлар тўртта разрядли иккилик сон кўринишида бўлишига асосланган ҳолда, киритилган соннинг ички, иккилик кўринишида тўртинчи разрядда 0 ёки 1 турганлиги аниқланада (“son10 & 8”) ва натижа 1 (рост) бўлса 1, акс ҳолда 0 чоп этилади. Кейинги қадамда соннинг ички кўринишидаги разрядлар чапга биттага сурилади ва яна тўртинчи позициядаги рақам чоп этилади. Такрорлаш sanagich қиймати 0 бўлгунча давом этади (тўрт марта) ва бошқарув ички такрорлаш операторидан чиқади.
1>
Do'stlaringiz bilan baham: |