C#

C# - Dövr Operatorları (while & do while)

C# - Dövr Operatorları (while & do while)

Heç bir proqramlaşdırma dilini dövrlərsiz (döngülər də deyilir) təsəvvür etmək mümkün deyildir. Dövrlər olmadan müasir proqramlar yazmaq qeyri-mümkündür. Dövrlər bir proqram içərisində müəyyən işləri dəfələrlə etməyimizə imkan verən kod bloklarıdır.

C# dilində 4 tip dövr vardır:
• while
• do while
• for
• foreach

İlk olaraq, birinci ikisini qələmə alaq ("klaviaturaya" desək, daha doğru olar):
Ən sadə while döngüsü aşağıdakı şəkildə qurulur:


while(şərt)
{
// Burada şərt doğru olduqca icra ediləcək kodlar yerləşir.
}

Proqramın icrası while döngüsünə çatanda, dövr mötərizələrindəki şərt ifadəsi hesablanır. Bu şərt doğru olduqda, yəni true dəyərini qaytardıqda, dövr {} bloklarındakı kodlar icra edilir, səhv olduqda, yəni false dəyərini qaytardıqda, proqramın icrası dövr bloklarından çıxaraq davam edir.

while dövrünün istifadəsinə aid bir misala baxaq (1-dən 20-yə qədər tam ədədlər ekrana yazdırılır):


int k=1;
while(k{
    Console.WriteLine(k);
    k++;	// k=k+1 deməkdir
}

İndi isə, yuxarıda yazılan proqram hissəsini araşdıraq. Deməli, k dəyişəninə 1 qiyməti mənimsədilir. Sonra proqram dövr mötərizəsindəki k<=20 şərtini yoxlayır. Şərt doğru olduğuna (true dəyər qaytarıldığına) görə, dövr blokları arasındakı kodlar çalışdırılır. Yəni ekrana əvvəlcə k-nın qiyməti yazdırılır, daha sonra, k 1 vahid artırılır. Bundan sonra yenə yuxarıdakı k<=20 şərti yoxlanılır və yenə bloklardakı kodlar icra edilir. Beləliklə, dövr 20 dəfə təkrarlanaraq, ekrana dəyərlər yazır. Şərtin ödənmədiyi k=21 dəyərində proqram dövrdən çıxaraq davam edir.
While dövrlərində şərt ödənmədiyi təqdirdə dövr bloklarının heç çalışdırılmamaq ehtimalı var. Lakin bəzən dövr blokunun ən azı bir dəfə yerinə yetirilməsi lazım gəlir. Məsələn, istifadəçidən giriş üçün şifrəni daxil etməyi tələb edən bir proqram, ən azı bir dəfə şifrəni tələb edir. do while dövrlərində şərt ifadəsi dövr bloku bir dəfə icra olunandan sonra yoxlanılır. Əgər şərt true dəyərini qaytararsa, dövr while-dakı qayda ilə davam edir, əks halda, (false dəyərini qaytardıqda) dövrdən çıxılır.

do while döngüsünün quruluşu aşağıdakı kimidir:


do
{
// Burada yazılan kodlar ilkin olaraq icra edilir. Dövrün təkrar olunub-olunmaması şərtdən
// asılı olacaqdır.
} while(şərt);

do while döngüsünün mahiyyətini və quruluşunu daha yaxşı başa düşmək üçün belə bir misalı nəzərdən keçirək. Aşağıdakı proqramda istifadəçidən bir şifrə tələb edək və sonra daxil olunan yazının şifrə olub-olmadığını yoxlayaq. Əgər daxil etdiyi yazı "sifre" olarsa, "Şifrəni bildiniz" yazaq, yox əgər "sifre" deyilsə, yazını təkrar daxil etməyi tələb edək.


string yazi;
do
{
    Console.Write("Şifrəni daxil edin:");
    yazi = Console.ReadLine();
} while(yazi != "sifre");
    Console.WriteLine("Şifrəni bildiniz");