Ma`lumki, go to (shartsiz nishonga o‘tish) operatorning ta’sirida dastur bajarilishining
“normal” ketma-ketligi uziladi va operatorda ko‘rsatilgan nishonga o‘tish ro‘y beradi. Go to
operatori dasturning strukturaviyligini buzadi, undan ko‘p foydalanish esa ko‘plab hatolar
manbayi hisoblanadi va juda chalkash ishonchsiz va qiyin o‘zgaruvchi dasturlarga olib keladi.
O‘z vaqtida go to ning “antitexnolgikligi” tufayli ko‘plab algoritmistlarda dasturlashda shartsiz
o‘tishdan umuman voz kechish istagi paydo bo‘ladi. 1960-yillarning boshida “go to siz
dasturlash” ning imkoni borligi to‘g‘risida diskussiya vujudga kelgan. Matematik nuqtayi
nazardan istalgan go to dan yangi o‘zgaruvchilar va tarmoqlanishlarning va sikllarning
o‘zgartirish yo‘li bilan voz kechishi mumkinligi isbot qilindi. Mana shu diskussiyaning
mahsuloti sifatida strukturaviy dasturlash tushunchasi paydo bo‘ldi. Ta`kidlash kerakki, Paskal
tilini yarata turib Niklous Virt avvalo unga nishonlarni va go to operatorini kiritmasligini
rejalashtirgan edi. Zamonaviy dasturlash tillarida deyarli kompromis mavjud: go to mavjud
ammo u “mashhurmas”, dastur osti qismi ichiga shartsiz o‘tish va unda analogik chiqish kabi
uning “skandali” ishlatilishi man qilingan. Dasturlash rivojlangani sayin shartsiz o‘tishlar
qandaydir muammolarga olib kelmaydigan va odatiy tarmoqlanishga qaraganda qulay bo‘lgan
ma`lum tipik vaziyatlar ajratib ko‘rsatilgan. Birinchi navbatda, bu dasturostining tugatilishiga
o‘tish va sikldan chiqish-mos holda end so‘ziga o‘tish dasturni yozuvchi va sikl tanasidan keyin
birinchi operatorga o‘tish. Borland firmasi tufayli, paskal tilida zamonaviy versiyalarni bunday
holler uchun maxsus operatorlar bilan ta`minlangan: exit poddastur bajarishini (agar dasturda
yozilgan bo‘lsa, u holda dastur ishini), break esa siklning bajarishini tugallaydi. Siklning joriy
iteratsiyasini uzuvchi continue operatori kamroq ishlatiladi. Sikl tanasida yozilgan operatorlar
bajarilmaydi. Keyin sikl tanasidan keyin nima bajarilishi kerak bo‘lsa shu – siklni davom
qildirish (while operatori) yoki tugatish (repeat operatori) bajariladi. Shartni tekshirish for siklda
parametrning qiymati uning yuqoridagi (pastdagi) chegarasida tenglashishi tekshiriladi. Ushbu
tekshirish natijasida bog‘liq ravishda sikl tugallanadi yoki uning keyingi iteratsiyasi boshlanadi
(for siklida sikl parametrining qiymati oldidan kattalashadi yoki kichiklashadi). C/C++ tiliga mos
keluvchi vositalar uning yaratuvchilar tomonidan oldindan kiritilgan. Dasturostilarni darhol
tugatish uchun return ishlatiladi. (agar funksiya void tilida bo‘lmasa unda returndan keyin
funksiyani qaytaradigan qiymat berilishi kerak). Siklni va uning if iteratsiyasini uchun,
yuqoridagidek break va continue ishlatiladi. Nihoyat, yaqqol shartsiz go to o‘tishlarini ishlatish
maqsadga muvofiq emas deb hisoblash mumkin bo‘lgan hollarni ko‘rib chiqamiz. Dasturlarda,
ayniqsa ikki o‘lchamli massivlarni qayta ishlaganda quyidagicha ko‘rinishdagi joylashtirilgan
sikllar vujudga keladi
Do'stlaringiz bilan baham: