CodeGym /Kurslar /C# SELF /Dövrə nəzarət: break və continue operatorları

Dövrə nəzarət: break və continue operatorları

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

1. Giriş

Çox vaxt belə bir vəziyyət olur ki, sənə dövrün bütün iterasiyalarını sona qədər işlətmək lazım olmur, əksinə, onu vaxtından əvvəl dayandırmaq lazımdır — məsələn, axtardığın elementi tapdığın kimi. Başqa hallarda isə işin bir hissəsini ötürmək və növbəti addıma keçmək lazımdır (məsələn, sən məlumat oxudun və onların emalını ötürmək istəyirsən). Bax, bu dövr daxilində axına nəzarət deməkdir.

C#-da breakcontinue operatorları məhz bunun üçün nəzərdə tutulub. Gəlin baxaq, bunlar necə işləyir və real tapşırıqlarda nə üçün lazım olur.

2. break operatoru: "Stop, maşın!"

Teoriya və sintaksis

break operatoru dövrün içində harada olursan ol, dərhal dövrdən çıxmaq üçün istifadə olunur. Proqram icrası break-ə çatanda, dövr dərhal dayanır və icra dövrün sonra gələn ilk kod sətrindən davam edir.


while (şərait)
{
    if (hansısa-şərait)
    {
        break;
    }
    // dövrün qalan kodu
}
break operatorunun while dövründə istifadəsi

Eyni şey fordo-while üçün də işləyir:

for (int i = 0; i < 10; i++)
{
    if (hansısa-şərait)
    {
        break;
    }
    // dövrün qalan kodu
}

Nümunə 1: ədədin sadəliyini yoxlamaq

Ədəd yalnız 1-ə və özünə bölünürsə, sadə sayılır. Bizə ədədin sadə olub-olmadığını yoxlamaq lazımdır: bütün potensial bölənləri 2-dən n-1-ə kimi yoxlayırıq. Əgər məlum oldu ki, bizim ədəd bölənə bölünür, artıq yoxlamağa ehtiyac yoxdur — ədəd sadə deyil! Dövrü bitirmək olar.

Nümunə:

int number = 111;
bool found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        Console.WriteLine("Bölən tapıldı " + i );
        break; // Dövrü dayandırırıq, artıq axtarmağa ehtiyac yoxdur!                
    }    
}

if (!found)
{
    Console.WriteLine("Bölən tapılmadı - ədəd sadədir.");
}

Nümunə 2: istifadəçi daxilinin yoxlanması

Gəlin kiçik bir tətbiq yazaq, məsələn, məlumat toplamaq üçün interaktiv anket:

while (true)
{
    Console.Write("Yaşınızı daxil edin: ");
    string input = Console.ReadLine();
    int age;
    if (int.TryParse(input, out age) && age > 0)
    {
        Console.WriteLine($"Əla! Sənin yaşın: {age}");
        break;   // Məlumat düzgün daxil edilib — dövrü bitirmək vaxtıdır!
    }
    else
    {
        Console.WriteLine("Xəta! Düzgün müsbət yaş daxil edin.");
    }
}

Niyə bu lazımdır:
Bəzən dövrü sonsuz (və ya çox uzun) işlətmək lazımdır, ta ki, istifadəçi düzgün məlumat daxil edənə qədər. Lazım olan hadisə baş verən kimi — break tətbiq edirik və dövrü tamamilə tərk edirik.

3. continue operatoru: "Növbəti, zəhmət olmasa!"

Teoriya və sintaksis

break-dən fərqli olaraq, continue operatoru bütün dövrü dayandırmır, sadəcə cari iterasiyanı kəsir: dövrün içində continue-dan sonra yazılan heç nə icra olunmur — növbəti iterasiyaya keçilir.


for (int i = 0; i < 10; i++)
{
    if (şərait)
    {
        continue;
    }
    // bu hissə yalnız continue işləməsə icra olunacaq
}
continue operatorunun for dövründə istifadəsi

Nümunə 3: cüt ədədlərin ötürülməsi

Təsəvvür et ki, sənə diapazondan yalnız tək ədədləri çıxarmaq lazımdır. Cütləri ötürmək lazımdır.


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // əgər ədəd cütdürsə — aşağıdakı hər şeyi ötürürük!
    }
    Console.WriteLine("Tək ədəd: " + i);
}
continue ilə cüt ədədlərin ötürülməsi

Nə baş verir:
i = 2, 4, 6... olduqda dövr continue-a rast gəlir və dərhal növbəti iterasiyaya keçir, Console.WriteLine icra olunmur.

Addım-addım vizuallaşdırma:

i i % 2 == 0 Əməliyyat
1 false print, continue yoxdur
2 true continue, print yoxdur
3 false print, continue yoxdur
4 true continue, print yoxdur
... ... ...

breakcontinue operatorları çox tez-tez istifadə olunur. Demək olar ki, hər ikinci dövrdə. Onlarla işləmək sənə xoş gələcək.

2
Tapşırıq
C# SELF, səviyyə, dərs
Bağlanıb
3-ə bölünən ədədləri ötürmək
3-ə bölünən ədədləri ötürmək
2
Tapşırıq
C# SELF, səviyyə, dərs
Bağlanıb
İlk 7-ə bölünən ədədi tap və dövrü dayandır
İlk 7-ə bölünən ədədi tap və dövrü dayandır
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION