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 break və continue 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
}
Eyni şey for və do-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
}
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);
}
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 |
| ... | ... | ... |
break və continue 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.
GO TO FULL VERSION