<!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>.  Значение
      должно быть булевого типа. Если результат есть &quot;истина&quot;, то
      скрипт <em>body</em> передается на выполнение Tcl
      интерпретатору. После этого выражение <em>test</em> снова
      вычисляется, и процесс повторяется до тех пор, пока его значение
      не станет &quot;ложь&quot;. В тексте скрипта <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>&lt;10</strong>, то без скобок
      возникнет бесконечный цикл.</p>

    <h2>ПРИМЕР</h2>

    <pre>
      while { &lt; 10} {
      	puts x is 
	incr x
      }
    </pre>
  </body>
</html>