Ëþáîå âûðaæåíèå, çaâåðøaþùååñя òî÷êîé ñ çaïяòîé, ðaññìaòðèâaåòñя êaê îïåða- òîð, âûïîëíåíèå êîòîðîãî çaêëþ÷aåòñя â âû÷èñëåíèè âûðaæåíèя. ×añòíûì ñëó-
÷aåì âûðaæåíèя яâëяåòñя ïóñòîñ îïåðaòîð ; (îí èñïîëüçóåòñя, êîãäa ïî ñèíòaê- ñèñó îïåðaòîð òðåáóåòñя, a ïî ñìûñëó — íåò). Ïðèìåðû:
i++; // âûïîëíяåòñя îïåðaöèя èíêðåìåíòa
a *=b+ c; // âûïîëíяåòñя óìíîæåíèå ñ ïðèñâaèâaíèåì fun(i, k); // âûïîëíяåòñя âûçîâ ôóíêöèè
Операторы ветвления Условный оператор if
Óñëîâíûé îïåðaòîð if èñïîëüçóåòñя äëя ðaçâåòâëåíèя ïðîöåñña âû÷èñëåíèé ía äâa íaïðaâëåíèя. Còðóêòóðíaя ñõåìa îïåðaòîða ïðèâåäåía ía ðèñ. 1.5. Ôîðìaò îïåðaòîða:
if ( âûðàæåíèå ) îïåðàòîð_1; [else îïåðàòîð_2;]
Cía÷aëa âû÷èñëяåòñя âûðaæåíèå, êîòîðîå ìîæåò èìåòü aðèôìåòè÷åñêèé òèï èëè òèï óêaçaòåëя. Åñëè îíî íå ðaâíî íóëþ (èìååò çía÷åíèå true), âûïîëíяåòñя ïåð- âûé îïåðaòîð, èía÷å — âòîðîé. Ïîñëå ýòîãî óïðaâëåíèå ïåðåäaåòñя ía îïåðaòîð, ñëåäóþùèé ça óñëîâíûì.
Îäía èç âåòâåé ìîæåò îòñóòñòâîâaòü, ëîãè÷íåå îïóñêaòü âòîðóþ âåòâü âìåñòå ñ êëþ÷åâûì ñëîâîì else. Åñëè â êaêîé-ëèáî âåòâè òðåáóåòñя âûïîëíèòü íåñêîëü- êî îïåðaòîðîâ, èõ íåîáõîäèìî çaêëþ÷èòü â áëîê, èía÷å êîìïèëяòîð íå ñìîæåò ïîíяòü, ãäå çaêaí÷èâaåòñя âåòâëåíèå. Áëîê ìîæåò ñîäåðæaòü ëþáûå îïåðaòîðû,
â òîì ÷èñëå îïèñaíèя è äðóãèå óñëîâíûå îïåðaòîðû (íî íå ìîæåò ñîñòîяòü èç îä- íèõ îïèñaíèé). Íåîáõîäèìî ó÷èòûâaòü, ÷òî ïåðåìåííaя, îïèñaííaя â áëîêå, âíå áëîêa íå ñóùåñòâóåò.
Ïðèìåðû:
Рис. 1.5. Структурная схема условного оператора
if (a<0)b= 1; //1
if (ad || a==0)) b++; else {b* = a; a = 0;} // 2 if (aif (b>a) max = b; else max = a; // 5
 ïðèìåðå 1 îòñóòñòâóåò âåòâü else. Ïîäîáíaя êîíñòðóêöèя íaçûâaåòñя «ïðîïóñê îïåðaòîða», ïîñêîëüêó ïðèñâaèâaíèå ëèáî âûïîëíяåòñя, ëèáî ïðîïóñêaåòñя â ça- âèñèìîñòè îò âûïîëíåíèя óñëîâèя.
Åñëè òðåáóåòñя ïðîâåðèòü íåñêîëüêî óñëîâèé, èõ îáúåäèíяþò çíaêaìè ëîãè÷å- ñêèõ îïåðaöèé. Íaïðèìåð, âûðaæåíèå â ïðèìåðå 2 áóäåò èñòèííî â òîì ñëó÷aå, åñëè âûïîëíèòñя îäíîâðåìåííî óñëîâèå aÎïåðaòîð â ïðèìåðå 3 âû÷èñëяåò íaèáîëüøåå çía÷åíèå èç òðåõ ïåðåìåííûõ. Ôè- ãóðíûå ñêîáêè â äaííîì ñëó÷aå íå îáяçaòåëüíû, òaê êaê êîìïèëяòîð îòíîñèò
÷añòü else ê áëèæaéøåìó if.
Ïðèìåð 4 íaïîìèíaåò î òîì, ÷òî õîòя â êa÷åñòâå âûðaæåíèé â îïåðaòîðå if ÷aùå âñåãî èñïîëüçóþòñя îïåðaöèè îòíîøåíèя, ýòî íå îáяçaòåëüíî.
Êîíñòðóêöèè, ïîäîáíûå îïåðaòîðó â ïðèìåðå 5, ïðîùå è íaãëяäíåå çaïèñûâaòü â âèäå óñëîâíîé îïåðaöèè (â äaííîì ñëó÷aå: max= (b> a)?b: a;).
Ïðèìåð. Ïðîèçâîäèòñя âûñòðåë ïî ìèøåíè, èçîáðaæåííîé ía ðèñ. 1.6. Îïðåäå- ëèòü êîëè÷åñòâî î÷êîâ.
include int main(){
float x, y; int kol;
cout << "Ââåäèòå êîîðäèíaòû âûñòðåëa\n"; cin >>x >> y;
if ( x*x+ y*y<1) kol= 2; else if( x*x + y*y<4) kol= 1;
else kol = 0;
cout << "\n Î÷êîâ: " << kol; return 0;
}
Do'stlaringiz bilan baham: |