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]

Kateqoriyaları

[redaktə | mənbəni redaktə et]
  • 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 halda else 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]
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]

  1. Böhm, Jacopini. "Flow diagrams, turing machines and languages with only two formation rules" Comm. ACM, 9(5):366-371, May 1966.
  2. 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.
  3. David Anthony Watt; William Findlay. Programming language design concepts. John Wiley & Sons. 2004. səh. 228. ISBN 978-0-470-85320-7.
  4. "Nested Loops in C with Examples". GeeksforGeeks (ingilis). 2019-11-25. 2024-03-14 tarixində arxivləşdirilib. İstifadə tarixi: 2024-03-14.
  5. "Python Nested Loops". www.w3schools.com (ingilis). İstifadə tarixi: 2024-03-14.
  6. Dean, Jenna. "Nested Loops". The Startup (ingilis). 2019-11-22. 2024-03-14 tarixində arxivləşdirilib. İstifadə tarixi: 2024-03-14.
  7. Ada Programming: Control: Endless Loop