pascalabcnet/PABCNetHelp/LangGuide/Operators/case.html
miks1965 8835a25254 Запретил match 1 with;
Запретил пустые case и with - в Delphi именно так
2018-08-16 13:33:27 +03:00

72 lines
3 KiB
HTML

<html>
<head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="case">
<param name="Keyword" value="of">
<param name="Keyword" value="else">
<param name="Keyword" value="Îïåðàòîð âûáîðà">
</object>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="case">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<H1>Îïåðàòîð âûáîðà</H1>
<p><i>Îïåðàòîð âûáîðà</i> âûïîëíÿåò îäíî äåéñòâèå èç íåñêîëüêèõ â çàâèñèìîñòè îò
çíà÷åíèÿ íåêîòîðîãî âûðàæåíèÿ, íàçûâàåìîãî <i>ïåðåêëþ÷àòåëåì</i>. Îí èìååò
ñëåäóþùèé âèä:</p>
<blockquote>
<p><b><code>case</code></b> <code class="codeit">ïåðåêëþ÷àòåëü</code> <code>
<b>of<br>
</b>&nbsp; </code> <code class="codeit">ñïèñîê âûáîðà 1</code><code>: </code> <code class="codeit">
îïåðàòîð1</code><code>;<br>
&nbsp; ...<br>
&nbsp; </code> <code class="codeit">ñïèñîê âûáîðà N</code><code>:
</code> <code class="codeit">îïåðàòîðN</code><code>;<br>
<b>&nbsp; else</b></code> <code class="codeit">ñïèñîê îïåðàòîðîâ<br>
</code><code><b>end</b>;</code> </p>
</blockquote>
<p>Ïåðåêëþ÷àòåëü ïðåäñòàâëÿåò ñîáîé âûðàæåíèå <a href="../Types/index_types.html">ïîðÿäêîâîãî òèïà</a>
èëè ñòðîêîâîãî òèïà, à ñïèñêè âûáîðà ñîäåðæàò êîíñòàíòû ñîâìåñòèìîãî
ïî ïðèñâàèâàíèþ òèïà. Êàê è
â îïåðàòîðå <b><code>if</code></b>, âåòêà <b><code>else</code></b> ìîæåò
îòñóòñòâîâàòü. </p>
<p>Îïåðàòîð <b><code>case</code></b> ðàáîòàåò ñëåäóþùèì îáðàçîì. Åñëè â îäíîì èç
ñïèñêîâ âûáîðà íàéäåíî òåêóùåå çíà÷åíèå ïåðåêëþ÷àòåëÿ, òî âûïîëíÿåòñÿ îïåðàòîð,
ñîîòâåòñòâóþùèé äàííîìó ñïèñêó. Åñëè æå çíà÷åíèå ïåðåêëþ÷àòåëÿ íå íàéäåíî íè â
îäíîì ñïèñêå, òî âûïîëíÿåòñÿ ñïèñîê îïåðàòîðîâ ïî âåòêå <b><code>else</code></b> èëè,
åñëè âåòêà <b><code>else</code></b> îòñóòñòâóåò, îïåðàòîð <b><code>case</code></b>
íå âûïîëíÿåò íèêàêèõ äåéñòâèé. </p>
<p>Ñïèñîê âûáîðà ñîñòîèò ëèáî èç îäíîé êîíñòàíòû, ëèáî äëÿ ïåðå÷èñëèìîãî òèïà èç äèàïàçîíà çíà÷åíèé
âèäà <code>a..b</code> (êîíñòàíòà <code>a</code> äîëæíà áûòü ìåíüøå êîíñòàíòû
<code>b</code>); ìîæíî òàêæå ïåðå÷èñëèòü íåñêîëüêî êîíñòàíò èëè äèàïàçîíîâ ÷åðåç
çàïÿòóþ. Íàïðèìåð:</p>
<blockquote>
<p><code><b>case </b>Country <strong>of</strong><br>
&nbsp; 'Ðîññèÿ': Capital := 'Ìîñêâà';<br>
&nbsp; 'Ôðàíöèÿ': Capital := 'Ïàðèæ';<br>
&nbsp; 'Èòàëèÿ': Capital := 'Ðèì';<br>&nbsp; <strong>else</strong> Capital
:= 'Ñòðàíà îòñóòñòâóåò â áàçå äàííûõ';<br><strong>end</strong>;</code></p>
<p><code><b>case</b> DayOfWeek <b>of</b><br>
&nbsp; 1..5: writeln('Áóäíèé äåíü');<br>
&nbsp; 6,7: writeln('Âûõîäíîé äåíü');<br>
<b>end</b>;</code></p>
</blockquote>
<p>Ñïèñêè âûáîðà íå äîëæíû ïåðåñåêàòüñÿ. Íàïðèìåð, ñëåäóþùèé ôðàãìåíò</p>
<blockquote>
<p><code><b>case</b> i <b>of</b><br>
&nbsp; 2,5: write(1);<br>
&nbsp; 4..6: write(2);<br>
<b>end</b>;</code></p>
</blockquote>
<p>ïðèâåäåò ê îøèáêå êîìïèëÿöèè.</p>
<p>&nbsp;</p>
</body>
</html>