CodeGym /Kurslar /C# SELF /do-while dövrü: tanışlıq və işləmə nüansları

do-while dövrü: tanışlıq və işləmə nüansları

C# SELF
Səviyyə , Dərs
Mövcuddur

1. do-while dövrü ilə tanışlıq

Gəlin bir dəqiqəlik fikrimizi yayındıraq və təsəvvür edək: sən istifadəçinin düşündüyü rəqəmi tapmağa çalışan proqram yazmaq qərarına gəlmisən. Lazımdır ki, proqram ən azı bir dəfə istifadəçidən rəqəm soruşsun və təxmin etməyənə qədər təkrar-təkrar soruşsun. Amma əgər şərt ilk cəhddən ödənmirsə, adi while dövrü heç dövrün içinə də girməyəcək.

Bax, məhz burada do-while dövrü ortaya çıxır. while-dan fərqli olaraq, o, dövrün bədənini ən azı bir dəfə icra edəcək — hətta şərt dərhal yalnış olsa belə. Bu elə bil sənə nəsə almadan da pulsuz saqqız verirlər.

do
{
    // Dövrün bədəni: bu kod ən azı bir dəfə işləyəcək
}
while (şərt);
do-while dövrünün sintaksisi

Nöqtəli vergülə ; axırda şərtin mötərizəsindən sonra diqqət yetir! Adi while-da o yoxdur, amma burada var. Başlayanlar üçün belə kiçik bir tələdir :)

do-while dövrünün addımlarının təsviri

  1. Dövrün bədəninə daxil olmaq (həmişə ən azı bir dəfə).
  2. Şərtin yoxlanılması.
  3. Əgər şərt doğrudursa — bədəni təkrar et.
  4. Əgər şərt yalnışdırsa — dövrdən çıx.

2. Adi while-dan fərqi

Gəlin adi while-ın əsas işləmə ssenarisini xatırlayaq:

while (şərt)
{
    // Dövrün bədəni
}

Əgər şərt əvvəldən yalnışdırsa, bədən heç vaxt işləməyəcək!

İndi isə do-while ilə nümunə:

do
{
    // Dövrün bədəni
}
while (şərt);

Dövrün bədəni ən azı bir dəfə işləyəcək, hətta şərt dərhal yalnış olsa belə!

Gəlin fərqi kodla göstərək:

// Adi while
int count = 0;
while (count > 0)
{
    Console.WriteLine("count = " + count);
    count--;
}
// Heç nə çıxmayacaq

// do-while
int count2 = 0;
do
{
    Console.WriteLine("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// "count2 = 0" çıxacaq, baxmayaraq ki, şərt yalnışdır!

Bəzən bu "qəribəlik" kimi görünür, amma elə məhz belə davranış kodunu xilas edir (məsələn, istifadəçi input-u və məlumatların yoxlanılması zamanı).

3. do-while üçün praktiki istifadə ssenariləri

Bu dövr ən çox harada rast gəlinir?

Məlumatların yoxlanılması

Ən məşhur ssenari — istəyirsən ki, istifadəçi düzgün nəsə daxil etsin (məsələn, yalnız rəqəmlər, ya da parol ən azı 6 simvol olsun), və düzgün input alana qədər soruşursan.

string password;
do
{
    Console.Write("Yeni parol daxil edin (ən azı 6 simvol): ");
    password = Console.ReadLine();
}
while (password.Length < 6);

Console.WriteLine("Parol qəbul olundu!");

Bu nümunədə dövrün bədəni ən azı bir dəfə işləyir — hətta istifadəçi ilk cəhddə uzun parol daxil etsə belə.

Konsol tətbiqlərində menyu

Çox rast gəlinən və faydalı pattern: menyunu göstərirsən, istifadəçi komandası gözləyirsən və dövrü yalnız xüsusi komanda ilə bitirirsən.

string command;
do
{
    Console.WriteLine("Menyu:");
    Console.WriteLine("1. Salamı göstər");
    Console.WriteLine("2. Çıxış");
    Console.Write("Əməliyyatı seçin: ");
    command = Console.ReadLine();

    if (command == "1")
    {
        Console.WriteLine("Salam, dünya!");
    }
    else if (command != "2")
    {
        Console.WriteLine("Naməlum komanda.");
    }
}
while (command != "2");

Console.WriteLine("Sağ ol!");

4. while və digər dövrlərin müqayisəsi

Dövr tipi Şərtin yoxlanılması Bədən neçə dəfə işləyə bilər Harada uyğundur
while Əvvəl 0 və daha çox dəfə Təkrarlama sayını əvvəlcədən bilməyəndə
do-while Sonra 1 və daha çox dəfə Ən azı bir dəfə işləmək lazım olanda
for Əvvəl 0 və daha çox dəfə İterasiya sayı əvvəlcədən məlum olanda
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION