1. Ön şərtli dövr operatoru. Operatorun formatı aşağıdaki kimidir:
while(ifadə) operator;
Nə qədər ki, ifadənin qiyməti sıfırdan fərqlidir (yəni “doğrudur”) operator yerinə yetirilir. İfadənin qiymət sıfra bərabər olduqda (yəni “yalan” olduqda) operatorun yerinə yetirilməsi dayanır və dövrün gövdəsindən sonra gələn operator yerinə yetirilir. Dövrün gövdəsində ifadənin qiymətinə təsir edən bir əlamət olmalıdır. Əks halda dövr sonsuz dövr ola bilər. Müsbət tam n-ədədi üçün n!-ın hesablanması proqramına baxaq.
//Faktorialın hesablanması proqramı
#include using namespace std;
void main( )
{long int f;
int i,n;
cout<<”n=”; cin>>n;
while (i<=n){f=f*i; i=i+1};
//və ya f=f*i++; və ya f*=i++;
cout <<”\n”< }
Dövrün gövdəsində olan f=f*i+1; operatorunu daha lakonik şəkildə yaza bilərik: f*=i++;
Məlumdur ki, faktorial funksiyası çox sürətlə artan funksiyadır. Ona görə də n-in müəyyən qiymətindən sonra funksiyanın qiyməti onun üçün ayrılmış yaddaş sahəsinə (long int tipi ilə müəyyən olunur) yerləşməyə bilər. Funksiyanın qiymətlər diaqnozununu artırmaq üçün unsiqned long int tipindən istifadə etmək olar. Sonsuz dövrə misal:
a=10;
while(a<100) x=1;
və ya
while(1);
38.Son şərtli dövr operatoru
Operatorun formatı aşağıdaki kimidir:
do operator while(ifadə);
while operatorunda yazılam ifadə “doğru” qiymət (sıfırdan fərqli qiymət) aldıqda operatorun yerinə yetirilməsi təkrarlanır. İfadə sıfıra bərabər qiymət aldıqda (yəni “yalan” qiymət) dövrdən çıxma əməliyyatı baş verir. Bu operatorda da dövrün gövdəsində şərtə təsir edən operator olmalıdır. Əks halda dövr sonsuz dövr ola bilər. Son şərtli dövr operatorundan bu operatorun fərqi odur ki, son şərtli dövr operatorunda do-sözündən sonra yazılan operator heç olmazsa bir dəfə yerinə yetirilir.
Yuxarıda göstərilən y=n!-funksiyasının proqramını son şərtli dövr operatorundan istifadə etməklə yazaq:
//Faktorialın hesablanması proqramı
#include using namespace std;
void main ( ) {
long int f;
int i,n;