dasturning u yoki bu bo’lagiga uzatish mumkin (tarmoqlanuvchi algoritm). Bunday
tarmoqlanishni amalga oshirish uchun shart operatorlaridan foydalaniladi.
if operatori:if operatori qandaydir shartni rostlikka tekshirshi natijasiga ko’ra dasturda
tarmoqlanishni amalga oshiradi:
if ( );
Bu erda
mantiqiy turga tegishli o’zgaruvchi yoki mantiqiy ifoda bo’lishi
mumkin.
Agar shart 0qiymatidan farqli, ya’ni rost bo’lsa, <operator> bajariladi, aks holda, ya’ni
shartning qiymati 0(yolg’on) bo’lsa, hech qanday amal bajarilmaydi va boshqaruv if operatoridan
keyingi operatorga o’tadi (agar u mavjud bo’lsa).
C++ tilining qurilmalari operatorlarni blok ko’rinishida tashkil qilishga imkon beradi.
Blok – ‘{‘ va ‘}’ belgilar oralig’iga olingan operatorlar ketma-ketligi bo’lib, u kompilyator
tomonidan yaxlit bir operator deb qabul qilinadi. Blok ichida o’zgaruvchilar e’lonlari ham
bo’lishi mumkin va blokda e’lon qilingan o’zgaruvchilar faqat shu blok ichida (ko’rinadi) amal
qiladi, blokdan tashqarida (ko’rinmaydi) amal qilmaydi. Blokdan keyin ‘;’ belgisi qo’yilmasligi
mumkin, lekin blok ichidagi har bir ifoda ‘;’ belgisi bilan yakunlanishi shart.
If – else operatori:Shart operatorining if – else ko’rinishi quyidagicha:
if () ; else;
Bu erda 0qiymatidan farqli, ya’nirost bo’lsa , aks holda
bajariladi. If-else shart operator mazmuniga ko’ra algoritmning tarmoqlanuvchi
blokini ifodalaydi.
?: shart amali:Agar tekshirilayotgan shart nisbatan sodda bo’lsa, shart amalining ‘?:’
ko’rnishiniishlatishmumkin:
? : ;
Ushbu shart amali if shart operatoriga o’xshash ko’rinishda ishlaydi: agar
0qiymatidan farqli, ya’nirostbo’lsa, , aks holda bajariladi. Odatda
ifodalarningqiymatlari biror o’zgaruvchiga o’zlashtiriladi.
Goto operatori va nishonlar:Nishon – bu davomida ikkita nuqta (‘:’) qo’yilgan
identifikator. Nishon bilan qandaydir operator belgilanadi va keyinchalik dasturning boshqa bir
qismidan unga shartsiz o’tish amalga oshiriladi. Nishon bilan har qanday operator belgilanishi
mumkin, shu jumladan e’lon operatori va bo’sh operatorlar ham. Nishon faqat funksiyalar ichida
amal qiladi.
Nishonga shartsiz o’tish goto operatori yordamida bajariladi. Goto operatori orqali faqat
uning o’zi joylashgan funksiya ichidagi operatorlarga o’tish mumkin. Goto operatorining
sintaksisi quyidagicha:
goto;
Ayrim hollarda, goto operatorining «sakrab o’tishi» hisobiga xatoliklar yuzaga kelishi
mumkin. Masalan,
int i=0;
i++; if(i) goto m;
int j;
m: j+=i;
operatorlarining bajarilishi xatolikka olib keladi, chunki jo’zgaruvchisining e’loni chetlab
o’tilgan.
Shartsizo’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, foydalanilgan taqdirda ham
quyidagi qoidalarga amal qilish zarur – blok ichiga,
if, if−else va
switch operatorlari ichiga,
hamda takrorlash operatorlari tanasiga tashqaridan “sakrab” 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.
Masalan:
…
goto B3A;
\\
xato
float x=0.5;
goto B3A; \\
to’g’ri
{int n=10;x=n*x+8;}
B3A: cout<<“x=”<
Dostları ilə paylaş: