Îïåðàòîð óñëîâèÿ if ÿâëÿåòñÿ îäíèì èç ñàìûõ ïîïóëÿðíûõ ñðåäñòâ, èçìåíÿþùèõ åñòåñòâåííûé ïîðÿäîê âûïîëíåíèÿ îïåðàòîðîâ ïðîãðàììû.
Êîíñòðóêòîð îïåðàòîðà óñëîâèÿ:
if óñëîâèå then îïåðàòîð1else îïåðàòîð2;
èëè
if óñëîâèå then îïåðàòîð;
Îïåðàòîð óñëîâèÿ if âûïîëíÿåòñÿ ñëåäóþùèì îáðàçîì.
Ñíà÷àëà âû÷èñëÿåòñÿ âûðàæåíèå, çàïèñàííîå â óñëîâèè.  ðåçóëüòàòå åãî âû÷èñëåíèÿ ïîëó÷àåòñÿ çíà÷åíèå áóëåâñêîãî òèïà.  ïåðâîì ñëó÷àå, åñëè çíà÷åíèå âûðàæåíèÿ ðàâíî True (èñòèíà), òî âûïîëíÿåòñÿ îïåðàòîð1, óêàçàííûé ïîñëå ñëîâà then. Åñëè ðåçóëüòàò âû÷èñëåíèÿ âûðàæåíèÿ â óñëîâèè ðàâåí False (ëîæü), òî âûïîëíÿåòñÿ îïåðàòîð2. Âî âòîðîì ñëó÷àå, åñëè ðåçóëüòàò âûðàæåíèÿ ðàâåí True, òî âûïîëíÿåòñÿ îïåðàòîð, åñëè False – îïåðàòîð, ñëåäóþùèé ñðàçó çà îïåðàòîðîì if. Îïåðàòîðû if ìîãóò áûòü âëîæåííûìè.
Ïðèìåð ôðàãìåíòà ïðîãðàììû ñ îïåðàòîðîì óñëîâèÿ if:
Read(Ch):
if Ch='N' then
Parol:= True
else
Parol:= False;
Read(X);
if Parol = True then
if X = 100 then
Write('Ïàðîëü è êîä ïðàâèëüíûå')
else begin
Writeln('Îøèáêà â êîäå');
Halt(l)
end:
 äàííîì ïðèìåðå ñ êëàâèàòóðû ñ÷èòûâàåòñÿ çíà÷åíèå ïåðåìåííîé ñèìâîëüíîãî òèïà Ch. Çàòåì ïðîâåðÿåòñÿ óñëîâèå Ch = 'N'. Åñëè îíî âûïîëíÿåòñÿ, òî ïåðåìåííîé Parol áóëåâñêîãî òèïà ïðèñâàèâàåòñÿ çíà÷åíèå True, åñëè óñëîâèå íå âûïîëíÿåòñÿ – False. Çàòåì ñ êëàâèàòóðû ñ÷èòûâàåòñÿ çíà÷åíèå êîäà X. Çàòåì îïåðàòîð if ïðîâåðÿåò óñëîâèå Parol = True. Åñëè îíî èìååò çíà÷åíèå True, òî âûïîëíÿåòñÿ ïðîâåðêà ââåäåííîãî ïàðîëÿ îïåðàòîðîì if X=100. Åñëè óñëîâèå Õ=100 èìååò çíà÷åíèå True, òî âûâîäèòñÿ ñîîáùåíèå «Ïàðîëü è êîä ïðàâèëüíûå», è óïðàâëåíèå â ïðîãðàììå ïåðåäàåòñÿ íà îïåðàòîð, ñëåäóþùèé çà ñëîâîì end, åñëè îíî èìååò çíà÷åíèå False, òî âûïîëíÿåòñÿ ñîñòàâíîé îïåðàòîð, ñòîÿùèé ïîñëå ñëîâà else, êîòîðûé âûâîäèò íà ýêðàí ñîîáùåíèå «Îøèáêà â êîäå» è âûçûâàåò ñòàíäàðòíóþ ïðîöåäóðó Halt(l) äëÿ îñòàíîâêè ïðîãðàììû.
|