pascalabcnet/PABCNetHelp/LangGuide/Operators/foreach.html

80 lines
2.9 KiB
HTML

<html>
<head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="foreach">
<param name="Keyword" value="in">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<H1>Îïåðàòîð öèêëà foreach</H1>
<p>Îïåðàòîð öèêëà <code><b>foreach</b></code> èìååò îäíó èç ñëåäóþùèõ
ôîðì:</p>
<blockquote>
<p><code><b>foreach</b> </code><code class="codeit">ïåðåìåííàÿ</code><code>
<b>in</b> </code><code class="codeit">êîíòåéíåð</code><code> <b>do</b><br>
&nbsp; </code><code class="codeit">îïåðàòîð</code></p>
</blockquote>
<p>èëè</p>
<blockquote>
<p><code><b>foreach</b> </code><code class="codeit">ïåðåìåííàÿ</code><code>:</code><code class="codeit">
òèï</code><code> <b>in</b> </code><code class="codeit">êîíòåéíåð</code><code>
<b>do</b><br>
&nbsp; </code><code class="codeit">îïåðàòîð</code></p>
</blockquote>
<p>èëè</p>
<blockquote>
<p><code><b>foreach</b> <strong>var</strong> </code><code class="codeit">ïåðåìåííàÿ</code><code> <b>in</b> </code><code class="codeit">êîíòåéíåð</code><code>
<b>do</b><br>
&nbsp; </code><code class="codeit">îïåðàòîð</code></p>
</blockquote>
<p> êà÷åñòâå êîíòåéíåðà ìîæåò ôèãóðèðîâàòü äèíàìè÷åñêèé ìàññèâ,
ñòðîêà, ìíîæåñòâî, à òàêæå ëþáîé êîíòåéíåð, óäîâëåòâîðÿþùèé èíòåðôåéñó
<code>IEnumerable</code> èëè
<code>IEnumerable&lt;T&gt;</code>(íàïðèìåð, <code>List&lt;T&gt;</code>,
<code>Dictionary&lt;Key,Value&gt;</code> è ò.ä.). Ïåðåìåííàÿ öèêëà
äîëæíà èìåòü òèï, <strong>ñîâïàäàþùèé</strong> ñ òèïîì ýëåìåíòîâ êîíòåéíåðà
(åñëè êîíòåéíåð óäîâëåòâîðÿåò èíòåðôåéñó
<code>IEnumerable</code>, òî ýòî òèï <code>object</code>). Â ïîñëåäíåé ôîðìå
<code>foreach</code> òèï ïåðåìåííîé öèêëà àâòîâûâîäèòñÿ ïî òèïó ýëåìåíòîâ
êîíòåéíåðà.</p>
<p>Ïåðåìåííàÿ öèêëà ïðîáåãàåò âñå
çíà÷åíèÿ ýëåìåíòîâ êîíòåéíåðà è äëÿ êàæäîãî çíà÷åíèÿ ïåðåìåííîé
öèêëà âûïîëíÿåòñÿ òåëî öèêëà. Èçìåíåíèå ïåðåìåííîé öèêëà
âíóòðè òåëà öèêëà íå ìåíÿåò ýëåìåíòû êîíòåéíåðà, ò.å. îíè äîñòóïíû òîëüêî íà
÷òåíèå.</p>
<p>Íàïðèìåð:</p>
<blockquote>
<p><code><b>var</b> <br>
&nbsp; ss: <b>set of</b> string := ['Èâàíîâ','Ïåòðîâ','Ñèäîðîâ'];<b><br>
</b>&nbsp; a: <b>array of</b> integer := (3,4,5);<br>
&nbsp; b: <b>array</b> [1..5] <b>of</b> integer := (1,3,5,7,9);<br>
&nbsp; l := new List&lt;real&gt;;<br>
<b>begin<br>
&nbsp;
foreach</b> s: string <b>in</b> ss <b>do</b><br>
&nbsp;&nbsp;&nbsp; write(s,' ');<br>
&nbsp; writeln;<br>
<b>&nbsp;
foreach</b> x: integer <b>in</b> a <b>do</b><br>
&nbsp;&nbsp;&nbsp; write(x,' ');<br>
&nbsp; writeln;<br>
<b>&nbsp;
foreach</b> <strong>var </strong>x <b>in</b> b <b>do</b><br>
&nbsp;&nbsp;&nbsp; write(x,' ');<br>
&nbsp; writeln;<br>
<b>&nbsp;
foreach</b> <strong>var</strong> r <b>in</b> l <b>do</b><br>
&nbsp;&nbsp;&nbsp; write(r,' ');<br>
<b>end</b>.<br>
&nbsp;</code></p>
</blockquote>
<p>&nbsp;</p>
</body>
</html>