4-mavzu. Takrorlanish operatorlari Takrorlash operatorlari


Download 29.7 Kb.
bet8/11
Sana17.09.2023
Hajmi29.7 Kb.
#1680174
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
4-mavzu. Takrorlanish operatorlari

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 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.
Quyidagi dasturda ikkita natural sonlar EKUBini topish masalasidagi takrorlash jarayonini nishon va goto operatori vositasida amalga oshirish ko‘rsatilgan:
int main(){
int a,b;
cout<<”A va B natural sonlar EKUBini topish.\n”;
cout<<”A va B natural sonlarni kiriting: “
cin>>a>>b;
nishon:
if (a==b){
cout<<”Bu sonlar EKUBi=”<return 0;
}
a>b?a-=b:b-=a;

Download 29.7 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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