C Takrorlash operatori (While, Do While)

Oldingi shartli while operatori. Oldingi shartli while operatori quyidagi umumiy ko’rinishga egadir:

	while(ifoda) Operator

Bu operator bajarilganda avval ifoda hisoblanadi. Agar uning qiymati 0 dan farqli bo’lsa operator bajariladi va ifoda qayta hisoblanadi. To ifoda qiymati 0 bo’lmaguncha sikl qaytariladi. Agar dasturda while (1); satr qo’yilsa bu dastur hech qachon tugamaydi.

Misol: Berilgan n gacha sonlar yig’indisi.

#include <stdio.h>
void main()
{
    long n,i = 1,s = 0;
    scanf("%d",&n);
    while (i< = n ) s+ = i++;
    printf("\n s = %d",s);
}
Bu dasturda s+ = i++ ifoda s = s+i; i = i+1 ifodalarga ekvivalentdir.

Quyidagi dastur to nuqta bosilmaguncha kiritilgan simvollar va qatorlar soni hisoblanadi:

#include <stdio.h>
int main()
{
    int nc = 0,nl = 0;
    char c;
    while ((c = getchar())! = '.' )
    {
        ++nc;
        if (c = = '\n') ++nl;
   };
  printf("satrlar = %d simvollar = %d \n",nl,nc);
   return 0;
}

Keyingi shartli do-while operatori. Keyingi shartli do-while operatori umumiy ko’rinishi quyidagicha:

	do
	Operator while(ifoda)

Sikl operatorining bu ko’rinishida avval operator bajariladi so’ngra ifoda hisoblanadi. Agar uning qiymati 0 dan farqli bo’lsa operator yana bajariladi va hokazo. To ifoda qiymati 0 bo’lmaguncha sikl qaytariladi.

Misol: Berilgan n gacha sonlar yig’indisi.

#include <stdio.h>
int main()
{
    long n,i = 1,s = 0;
    scanf("%d",&n);
    do{
        s+ = i++;
    }while (i< = n); printf("\n s = %d",s);
   return 0;
}

Bu dasturning kamchiligi shundan iboratki agar n qiymati 0 ga teng yoki manfiy bo’lsa ham, sikl tanasi bir marta bajariladi va s qiymati birga teng bo’ladi.