O`zbеkistоn rеspublikаsi оliy vа o`rtа mахsus tа’lim vаzirligi аndijоn mаshinаsоzli


Goto operatorida qo‘llaniladigan identifikatorlar C++


Download 3.11 Mb.
bet32/50
Sana02.06.2024
Hajmi3.11 Mb.
#1838594
1   ...   28   29   30   31   32   33   34   35   ...   50
Bog'liq
sdasturlash tilini organish

Goto operatorida qo‘llaniladigan identifikatorlar C++ tilida Delphidagi kabi e’lon qilinmaydi.
Shuni ta’kidlash lozimki C++ tilida dastur tuzish jarayonidagi ayrim hollarda goto operatoridan foydalanib «sakrab o‘tishi» hisobiga xatoliklar yuzaga kelishi mumkin. Masalan,
int i=0;
i++; if(i) goto m;
int j;
m: j+=I;
Bu misoldagi goto operatorining bajarilishi xatolikka olib keladi, chunki j
e’lon qilinmay qoladi.
Shartsiz o‘tish operatori dastur tuzishdagi kuchli va shu bilan birga xavfli
vositalardan biri hisoblanadi. Kuchliligi shundaki, u yordamida algoritmning «boshi berk» joylaridan chiqib ketish mumkin. Ikkinchi tomondan, bloklarning

51

ichiga o‘tish, masalan takrorlash operatorlarining ichiga «sakrab» kirish kutilmagan holatlarni yuzaga keltirishi mumkin. Shu sababli, imkon qadar goto operatoridan foydalanmaslik kerak, ishlatilgan taqdirda ham qo’yidagi qoidalarga amal qilish zarur: blok ichiga, if…else va tanlash operatorlari ichiga hamda takrorlash operatorlari tanasiga tashqaridan kirish mumkin emas.


Garchi, nishon yordamida dasturning ixtiyoriy joyiga o‘tish mumkin bo’lsa ham, boshlang‘ich qiymat berish e’lonlaridan sakrab o‘tish man etiladi, lekin bloklardan sakrab o‘tish mumkin.
Xususan, nishon yordamida ichki blokdan tashqi blokka va tashqi blokdan ichki blokka o‘tishga C++ tili ruxsat beradi:
{…
goto ABC:

{int i=15;

ABC:

goto XYZ;
int y=10;

goto KLM;
…}

int k=0;

KLM:
…}
Lekin, yuqorida keltirilgan misoldagi barcha o‘tishlar mazmunan xato
hisoblanadi.

52

Quyidagi dasturda ikkita natural sonlar EKUBini topish masalasidagi takrorlash jarayonini nishon va goto operatori vositasida amalga oshirish ko‘rsatilgan:



Download 3.11 Mb.

Do'stlaringiz bilan baham:
1   ...   28   29   30   31   32   33   34   35   ...   50




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling