<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN> <html> <head> <title>while</title> </head> <body> <h1>while</h1> <p>Команда выполняет скрипт до тех пор, пока не будет выполнено условие.</p> <h2>СИНТАКСИС</h2> <pre> <strong>while</strong> <em>test</em> <em>body</em> </pre> <h2>ОПИСАНИЕ</h2> <p>Команда <strong>while</strong> вычисляет значение выражения <em>test</em> подобно команде <strong><a href=expr.html>expr</a></strong>. Значение должно быть булевого типа. Если результат есть "истина", то скрипт <em>body</em> передается на выполнение Tcl интерпретатору. После этого выражение <em>test</em> снова вычисляется, и процесс повторяется до тех пор, пока его значение не станет "ложь". В тексте скрипта <em>body</em> можно использовать команду <a href=continue.html><strong>continue</strong></a> для завершения текущего цикла и команду break для немедленного завершения команды <strong>while</strong>.</p> <p>Команда <strong>while</strong> всегда возвращает пустую строку.</p> <p>Выражение <em>test</em> почти всегда лучше заключать в фигурные скобки, иначе подстановки команд и переменных в нем будут выполнены до исполнения команды и никакие изменения значений переменных в скрипте body не изменят значения выражения test. Это может привести к возникновению бесконечного цикла. Если же выражение test помещено в фигурные скобки, подстановки в нем выполняются при каждом вычислении (перед каждым выполнением body). Например, если выполнить следующий скрипт с и без скобок вокруг <strong><10</strong>, то без скобок возникнет бесконечный цикл.</p> <h2>ПРИМЕР</h2> <pre> while { < 10} { puts x is incr x } </pre> </body> </html>