Nəzarət axını
Nəzarət axını (ing. Control Flow) — proqram təminatında kodun icra ardıcıllığını müəyyən edən mexanizmdir. Bu mexanizm vasitəsilə proqramın hansı hissələrinin nə zaman və hansı şərtlərlə icra olunacağını təyin etmək mümkündür.[1] Proqramlaşdırma dillərində nəzarət axını təmin etmək üçün müxtəlif üsullar var, əsasən aşağıdakı kateqoriyalara bölünür.[2]
- Sıralı axın (ing. Sequential Flow)
- Proqramın hər bir əmri sırayla, bir-birinin ardınca icra olunur.[3]
- Əsas nəzarət axınıdır və proqramın başlanğıcından sonuna qədər addım-addım irəliləyir.
- Şərtli nəzarət axını (ing. Conditional Control Flow)
- Proqramın müəyyən hissəsinin icra edilib-edilməməsini təmin edir.
- Əsasən
if
,else if
,else
strukturlarından istifadə edilir. - Məsələn,
if
bloku müəyyən bir şərt doğru olduqda icra olunur, əks haldaelse
blokuna keçir.
if a > b:
print("a böyüktür")
else:
print("b böyüktür və ya bərabərdir")
- Dövr nəzarət axını (ing. Loop Control Flow)
- Kodun müəyyən hissəsinin təkrarən icra olunmasını təmin edir.
for
,while
dövrləri vasitəsilə həyata keçirilir.- Dövr nəzarət axını çoxsaylı məlumatları emal etmək və ya bir işi təkrarlamaq lazım olduqda istifadə olunur.
- Misal (for dövrü)
for i in range(5):
print(i)
- Misal (while dövrü)
i = 0
while i < 5:
print(i)
i += 1
- Seçim nəzarəti (ing. Switch Control)
- Müxtəlif dəyərlərə görə müxtəlif əmrlərin icra olunmasını təmin edir.
- Bəzi dillərdə
switch
strukturundan istifadə olunur; Python kimi dillərdə isə ümumiyyətləif-elif-else
blokları ilə əvəz olunur.[4]
choice = 2
if choice == 1:
print("Birinci seçim")
elif choice == 2:
print("İkinci seçim")
else:
print("Başqa seçim")
- Funksiya çağırışları (ing. Function Calls)
- Funksiyalar kodun müəyyən hissələrini ayrı-ayrılıqda icra etmək üçün istifadə olunur.
- Funksiya çağırışı ilə nəzarət axını həmin funksiyaya keçir, funksiyanın icrası bitdikdən sonra isə növbəti sətrə geri qayıdır.
def salamla():
print("Salam!")
salamla()
- Nəzarəti dayandırma və davametmə (ing. Break, Continue, Return)
- Dövrü dayandırmaq və ya növbəti iterasiyaya keçmək üçün istifadə olunur.[5]
break
dövrü vaxtından əvvəl bitirir,continue
isə cari iterasiyanı buraxaraq növbəti iterasiyaya keçir.return
isə funksiyanı müəyyən dəyəri geri qaytarmaqla bitirir.
- Misal (break və continue)
for i in range(10):
if i == 5:
break # Dövr burada dayandırılır
elif i == 3:
continue # Bu iterasiya buraxılır
print(i)
- İstisnaların emalı (ing. Exception Handling)
- Proqramda gözlənilməyən səhvlərin qarşısını almaq üçün
try
,except
blokları istifadə olunur. - Bu, nəzarət axınının səhv baş verdikdə hansı istiqamətə yönləndiriləcəyini müəyyən edir.[6]
- Proqramda gözlənilməyən səhvlərin qarşısını almaq üçün
try:
hasil = 10 / 0
except ZeroDivisionError:
print("Sıfıra bölmə mümkün deyil.")
Nəzarət axını proqramın davranışını düzgün qurmaq və istənilən şərtlərə uyğun olaraq nəticə əldə etmək üçün əsas mexanizmdir.[7]
- ↑ Böhm, Jacopini. "Flow diagrams, turing machines and languages with only two formation rules" Comm. ACM, 9(5):366-371, May 1966.
- ↑ Roberts, E. [1995] "Loop Exits and Structured Programming: Reopening the Debate Arxiv surəti 25 iyul 2014 tarixindən Wayback Machine saytında Arxivləşdirilib 2014-07-25 at the Wayback Machine," ACM SIGCSE Bulletin, (27)1: 268–272.
- ↑ David Anthony Watt; William Findlay. Programming language design concepts. John Wiley & Sons. 2004. səh. 228. ISBN 978-0-470-85320-7.
- ↑ "Nested Loops in C with Examples". GeeksforGeeks (ingilis). 2019-11-25. 2024-03-14 tarixində arxivləşdirilib. İstifadə tarixi: 2024-03-14.
- ↑ "Python Nested Loops". www.w3schools.com (ingilis). İstifadə tarixi: 2024-03-14.
- ↑ Dean, Jenna. "Nested Loops". The Startup (ingilis). 2019-11-22. 2024-03-14 tarixində arxivləşdirilib. İstifadə tarixi: 2024-03-14.
- ↑ Ada Programming: Control: Endless Loop