Spec-Zone.ru › Tcl/Tk

для

Имя

для — цикл 'For'

Синтаксис

для начало проверка шаг тело

Описание

Для — это команда цикла, структура которой похожа на оператор for языка C. Аргументы начало, шаг и тело должны быть строками команд Tcl, а проверка — строкой выражения. Команда for сначала вызывает интерпретатор Tcl для выполнения начала. Затем она многократно вычисляет проверку как выражение; если результат отличен от нуля, она вызывает интерпретатор Tcl для тела, затем вызывает интерпретатор Tcl для шага, затем повторяет цикл. Команда завершается, когда проверка вычисляется как 0. Если в теле вызывается команда продолжить, все оставшиеся команды в текущем выполнении тела пропускаются; обработка продолжается вызовом интерпретатора Tcl для шага, затем вычислением проверки и так далее. Если в теле или шаге вызывается команда прервать, то команда for немедленно вернётся. Действие команд прервать и продолжить аналогично соответствующим операторам в C. Для возвращает пустую строку.

Примечание: проверка почти всегда должна быть заключена в фигурные скобки. Если этого не сделать, подстановки переменных будут выполнены до начала выполнения команды for, что означает, что изменения переменных, внесённые телом цикла, не будут учтены в выражении. Это может привести к бесконечному циклу. Если проверка заключена в фигурные скобки, подстановки переменных отложены до вычисления выражения (перед каждой итерацией цикла), поэтому изменения переменных будут видны. См. пример ниже:

Примеры

Вывод строки для каждого целого числа от 0 до 9:
for {set x 0} {$x<10} {incr x} {
    puts "x is $x"
}

Цикл будет выполняться бесконечно или вообще не будет выполняться, так как вычисляемое выражение фактически является константой, или даже сгенерирует ошибку! Фактическое поведение будет зависеть от того, существует ли переменная x до запуска команды for и является ли её значение значением, которое меньше или больше или равно десяти, и это происходит потому, что выражение будет заменено до запуска команды for.

for {set x 0} $x<10 {incr x} {
    puts "x is $x"
}

Вывод степеней двойки от 1 до 1024:

for {set x 1} {$x<=1024} {set x [expr {$x * 2}]} {
    puts "x is $x"
}

См. также

прервать, продолжить, foreach, while

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/for.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/for.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API