projman/hlp/ru/tcl/foreach.html
2018-02-05 17:23:37 +03:00

99 lines
4.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>foreach</title>
</head>
<body>
<h1>foreach</h1>
<p> Команда цикла по элементам одного или нескольких списков.</p>
<h2><a name=СИНТАНСИС></a>СИНТАКСИС</h2>
<pre>
<strong>foreach</strong> <em>varname</em> <em>list</em> <em>body</em>
<strong>foreach</strong> <em>varlist1</em> <em>list1</em> ?<em>varlist2</em> <em>list2</em>...? <em>body</em>
</pre>
<h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
<p> Команда организует выполнение цикла, в котором переменные
цикла последовательно принимают все значения из списков
значений. В простейшем случае имеется одна переменная цикла
<em>varname</em> и один список значений <em>list</em> для присвоения
переменной цикла. Аргумент <em>body</em> есть скрипт Tcl. Для
каждого элемента списка <em>list</em>, по очереди с первого до
последнего, <strong>foreach</strong> присваивает содержимое очередного
элемента списка переменной <em>varname</em> и затем вызывает
интерпретатор Tcl для исполнения <em>body</em>.
</p>
<p> В общем случае в команде может быть указано несколько списков
значений (например, <em>list1</em> и <em>list2</em>), и каждый из
них может быть связан с одной переменной или со списком
переменных цикла (например, <em>varlist1</em> и
<em>varlist2</em>). Во время каждой итерации переменные каждого
списка переменных принимают значения последовательных элементов
соответствующего списка значений. Значения из списков значений
используются последовательно от первого до последнего, и каждое
значение используется только один раз. Общее число итераций
выбирается таким, чтобы использовать все значения из всех
списков значений. Если список значений не содержит достаточного
числа значений для всех связанных с ним переменных цикла, вместо
недостающих элементов используются пустые значения.
</p>
<p> Внутри скрипта <em>body</em> можно использовать команды <a
href=break.html><strong>break</strong></a> и <a href=
continue.html><strong>continue</strong></a>, аналогично команде
<a href=for.html><strong>for</strong></a>.
</p>
<p> Команда <strong>foreach</strong> возвращает пустую строку.</p>
<h2><a name=ПРИМЕРЫ></a>ПРИМЕРЫ</h2>
<p> В цикле используются переменные цикла i и j для цикла по
элементам одного списка </p>
<pre>
set x {}
foreach {i j} {a b c d e f} {
lappend x
}
</pre>
<p>В результате величина x равна &quot;a d c f e&quot;.</p>
<p>При вычислении цикла используются три итерации.</p>
<p> В цикле переменные цикла i и j используются для различных
списков значений. </p>
<pre>
set x {}
foreach i {a b c} j {d e f g} {
lappend x
}
</pre>
<p>В результате величина x равна &quot;a d b e c f {} g&quot;. </p>
<p>При вычислении цикла используются четыре итерации.</p>
<p>Обе предыдущие формы скомбинированы в следующем цикле</p>
<pre>
set x {}
foreach i {a b c} {j k} {d e f g} {
lappend x
}
</pre>
<p>В результате величина x равна &quot;a d e b f g c {} {}&quot;.</p>
<p> При вычислении цикла используются три итерации.</p>
</body>
</html>