Операторҳои пайдарпай

Ба дигарон равон намоед

Мавзӯи омӯзиши операторҳо барои ҳамаи забонҳои барно- масози тақрибан якхела мебошад. Операторҳо, одатан, амалиёт ва мантиқи (тартиби) иҷрошавии ин амалиётҳоро дар барнома муаяйн мекунанд. Операторҳоро ба операторҳои пайдарпай ва идоракунанда ҷудо мекунанд.

Операторҳои пайдарпай. Ҳар як оператори забони C++ бо аломати «;» ба охир мерасад ва аз руи ин аломат шинохта мешавад. Дилхоҳ ифода, ки бо аломати «;» ба охир мерасад аз тарафи компилятор ҳамчун оператори алоҳида дида мешавад.

Дар ҳолати хусуси оператори холи низ истифода бурда ме­шавад. Оператори холи аз як рамзи «;», ки дар тарафи чапаш ягон ифода ё оператори дигари бо «;» ба охир нарасида нест,

иборат мебошад. Оператори холи ягон амалиётро иҷро намеку- над. Он дар ҷое истифода мешавад, ки синтаксиси забон онро талаб мекунаду аз руи мантиқи барнома ягон амалиёт набо- яд иҷро шавад, истифода мешавад. Оператори холи асосан дар конструксияҳои сикли истифода мешавад.

Пеш аз дилхоҳ оператор метавонад аломат, ки аз оператор бо рамзи «:» чудо карда мешавад, навишта шавад. Ба сифати аломат барномасоз метавонад дилхоҳ идентификаторро исти- фода барад (ин идентификаторҳо набояд ки якхела бошанд):

ABC: x = 4 + x * 3;

Аломати операторҳо барои ба иҷро расонидани гузаришҳо ис­тифода бурда мешаванд. Ҳамин тариқ, бо ёрии оператори холи мо метавонем дар дилхоҳ ҷои барнома аломат гузошта, баъд ба он нуқта гузариш иҷро намоем.

Қайд мекунем, ки дар забони С++ оператори бахшиш дар алоҳидаги мавҷуд нест. Ба ҷои он амали бахшиш мавчуд аст (моҳияти ин амал дар мавзуи 1.4. оварда шудааст), ки барои ташкили ифодаҳои бинариу истифода мешавад. Аз ҳамин са- баб, амали бахшишро ифода-оператор низ меноманд. Операто- ри бахшиш ҳолати хусусии ифода-оператор мебошад.

Мафҳумҳои зеринро дохил мекунем. Оператори таркиби гуфта пайдарпаии операторҳои ба қавси фигураву {} гириф- ташударо меноманд. Агар дар оператори таркибу амалҳои эъ- лонкуни ё муайянкунии тағйирёбандаҳо мавчуд бошад, он гоҳ онро блоки операторҳо ё блок меноманд. Аз руи синтаксиси забон ҳам блок ва ҳам оператори таркиби ҳамчун оператори алоҳида шинохта шуда, коркард карда мешаванд. Вале, дар охи- ри блок ва оператори таркибиу рамзи «; » гузошта намешавад. Аломати ба охиррасии блок ва оператори таркиби ин қавси фи- гуравии пушидашуда (}) мебошад. Дар дохили блок (оператори таркибиу) ҳамаи операторҳо бояд бо рамзи «; » ба охир расанд. Масалан,

{ a = z + 10.3; z++; }

оператори таркиби мебошад. Мисоли зерин ташкили блокро ни- шон медиҳад:

{ int a; char b = ’a’; a = (int)b; }

Ҳангоми ташкили блокҳо бояд дар назар дошт, ки тағйирё- бандаҳое, ки дар дохили блок эълон ё муайян шудаанд, берун аз блок вуҷуд надоранд. Яъне, дар мисоли болои, берун аз блок тағйирёбандаҳои a ва b вуҷуд надоранд ва кишиши муроҷиат ба онҳо ба хатогии оварда мерасонад.

Агар ягон сатри барнома бо // оғоз шавад, он гоҳ ин сатр сатри эзоҳи номида шуда, ҳангоми коркарди барнома аз та- рафи компилятор ба эътибор гирифта намешавад. Дар ҳолати умуми, ҳамаи рамзҳое, ки баъди // меистанд, то охири сатр ҳамчун эзоҳ шинохта шуда коркард карда намешаванд. Эзоҳ дар матни барнома барои гузоштани маълумот оиди кори ягон қисми барнома гузошта мешавад. Масалан, порчаи барномаи зерин дуруст мебошад:

// Мисоли оператори таркиби

{ i—; i > 0 ? k++ : k—; }

Маводҳои ҳамсон