
C dasturlash tili / Takrorlash operatori
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.