foreach
Команда цикла по элементам одного или нескольких списков.
 
 



  •  Синтаксис
  •  Описание
  •  Примеры
  • СИНТАНСИС foreach varname list body

    foreach varlist1 list1?varlist2 list2...? body

    ОПИСАНИЕ Команда организует выполнение цикла, в котором переменные цикла последовательно принимают все значения из списков значений. В простейшем случае имеется одна переменная цикла varname и один список значений list для присвоения переменной цикла. Аргумент body есть скрипт Tcl. Для каждого элемента списка list, по очереди с первого до последнего, foreach присваивает содержимое очередного элемента списка переменной varname и затем вызывает интерпретатор Tcl для исполнения body.
    В общем случае в команде может быть указано несколько списков значений (например, list1 и list2), и каждый из них может быть связан с одной переменной или со списком переменных цикла (например, varlist1 и varlist2). Во время каждой итерации переменные каждого списка переменных принимают значения последовательных элементов соответствующего списка значений. Значения из списков значений используются последовательно от первого до последнего, и каждое значение используется только один раз. Общее число итераций выбирается таким, чтобы использовать все значения из всех списков значений. Если список значений не содержит достаточного числа значений для всех связанных с ним переменных цикла, вместо недостающих элементов используются пустые значения.
    Внутри скрипта body можно использовать команды break и continue, аналогично команде for.
    Команда foreachвозвращает пустую строку.
    ПРИМЕРЫ
    В цикле используются переменные цикла i и j для цикла по элементам одного списка
    set x {}
    foreach {i j} {a b c d e f} { lappend x $j $i }
    В результате величина x равна “b a d c f e”.

    При вычислении цикла используются три итерации.

    В цикле переменные цикла i и j используются для различных списков значений.
    set x {}
    foreach i {a b c} j {d e f g} { lappend x $i $j }
    В результате величина x равна “a d b e c f {} g”.

    При вычислении цикла используются четыре итерации.

    Обе предыдущие формы скомбинированы в следующем цикле

    set x {}
    foreach i {a b c} {j k} {d e f g} { lappend x $i $j $k }
    В результате величина x равна “a d e b f g c {} {}” .
    При вычислении цикла используются три итерации.

    [ Список команд Tcl ]            [ Содержание ]