Masalan:
while(1); // cheksiz takrorlash
Xuddi for operatoridek, ‘,’ yordamida <ifoda> da bir nechta amallar sinxron ravishda bajarish mumkin.
Misol. Son va uning kvadratlarini chop qilinadigan dasturda ushbu holat ko‘rsatilgan:
#include
using namespace std;
int main()
{
int n,n2;
cout<<"Sonni kiriting (1..10):=";
cin>>n;
n++;
while(n--,n2=n*n,n>0)
cout<<" n soni = "<berish kerakki, shart ifodasida operatorlarni yozilish ketma-ketligining ahamiyati bor, chunki eng oxirgi operator takrorlash sharti sifatida qaraladi va n qiymati 0 bo‘lganda takrorlash tugaydi.
Misol: Ixtiyoriy natural sonlar kiritiladi, qachonki char tipidagi biron belgi kiritilguncha va kiritilgan sonlar yig‘indisi hisoblanadi.
#include
#include
using namespace std;
int main()
{
int a, ans;
char s;
cin >> a;
ans = a;
while(cin >> s >> a)
{
ans += a;
}
cout << ans;
return 0;
}
while takrorlash operatori yordamida samarali dastur kodi yozishga yana bir misol bu - ikkita natural sonlarning eng katta umumiy buluvchisini (EKUB) Evklid algoritmi bilan topish masalasini keltirishimiz mumkin:
#include
#include
using namespace std;
int main ()
{
int a, b ;
cout<< " A va B natural sonlar EKUBini topish \ n " ;
cout<< " A va B natural sonlarni kiriting : " ;
cin >> a >> b ;
while ( a != b ) a > b ? a -= b : b -= a ;
cout<< " Bu soniar EKUBi= "<< a ;
return 0 ;
}
Bu misolda butun turdagi a va b qiymatlari oqimdan o‘qilgandan keyin toki ularning qiymatlari o‘zaro teng bo‘lmaguncha takrorlash jarayoni ro‘y beradi. Takrorlashning har bir qadamida a va b sonlarning kattasidan kichigi ayriladi. Takrorlashdan keyingi ko‘rsatma vositasida a o‘zgaruvchisining qiymati natija sifatida chop etiladi.
Dostları ilə paylaş: |