5. Operatorlar


Boshqaruvni uzatish operatorlari


Download 109.39 Kb.
bet3/3
Sana12.03.2023
Hajmi109.39 Kb.
#1264839
1   2   3
Bog'liq
05.Operatorlar

5.3. Boshqaruvni uzatish operatorlari


continue, break va goto operatorlari. continue operatori sikl ichidagi barcha ifodalarning bajarilishi tugallanmasdan navbatdagi iteratsiyaga oʻtish imkonini beradi. Misol tariqasida, 5 dan 10 gacha boʻlgan sonlardan tashqari, 1 dan 100 gacha sonlarning barchasini chiqarish dasturini koʻraylik:
for(int i = 1; i <= 100; ++i) {
if(i > 4 && i < 11) continue;
cout << i << endl;
}
break operatori siklning bajarilishini uzish imkonini beradi. Misol tariqasida 1 dan 100 gacha sonlarning barchasini yana bir usul bilan chiqaramiz:
int i=1;
while(1) {
if(i > 100) break;
cout << i << endl;
++i;
}
Bu yerda shartda '1' qiymati koʻrsatildi. Bunda sikl ichidagi koʻrsatmalar cheksiz bajariladi. Ammo, break operatoridan foydalanish, '100'ta satr chop qilinganidan keyin, uning bajarilishini uzadi. break operatori dasturning emas, balki siklning bajarilishini uzadi, ya’ni boshqaruv sikldan keyin keltirilgan koʻrsatmaga oʻtadi. Cheksiz sikldan break operatori bilan birgalikda foydalanish foydalanuvchi tomonidan avvaldan aniqlanmagan sondagi ma’lumotlarni olishda qulay. Misol tariqasida noaniq sondagi butun sonlarni yigʻish dasturini koʻramiz:
#include
#include
int main() {
int x = 0, summa = 0;
cout << "Natijani olish uchun 0 sonini kiriting" << endl;
for(;;) {
cout << "Son kiriting: ";
cin >> x;
if(!cin.good()) {
cout <<"Siz son kiritmadingiz!"<cin.clear(); // Xatolik bayroqchasini tashlash
cin.ignore(255,'\n');
continue;
}
if(!x) break;
summa += x;
}
cout << "Sonlar yig'indisi: " << summa <cin.ignore(255,'\n').get();
return 0;
}

goto shartsiz oʻtish operatori orqali boshqaruvni dasturning ihiyoriy qismiga oʻtkazish mumkin. Operator quyidagicha formatga ega:
goto ;
parametridagi qiymat mumkin boʻlgan identifikator boʻlishi lozim. Dasturning boshqaruv uzatilayotgan joyi bir oʻlchamli nison bilan belgilanadi va undan soʻng ikki nuqta ":" koʻrsatiladi. Misol tariqasia '1' dan '100'gacha sonlarni chiqarishni koʻramiz:
int i = 1;
BLOCK_START: {
if(i > 100) goto BLOCK_END;
cout << i << endl;
++i;
goto BLOCK_START;
}
BLOCK_END:;
Demak, figurali qavslardan nafaqat shartli, siklik operatorlarda, funksiyalarda, balki alohida konstruksiya sifatida ham foydalanish mumkin. Figurali qavslar ichiga olingan kod fragmenti blok deyiladi. Blok ichida e’lon qilingan oʻzgaruvchilar faqat blok doirasida koʻrinadi.
goto operatoridan imkon qadar foydalanmaslikka intilish zarur, chunki u dasturni juda chalkash qiladi va kutilmagan natijalarga olib kelishi mumkin.


Download 109.39 Kb.

Do'stlaringiz bilan baham:
1   2   3




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