2018-02-05 17:22:04 +03:00
|
|
|
|
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>while</title>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<h1>while</h1>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Команда выполняет скрипт до тех пор, пока не будет выполнено
|
|
|
|
|
условие.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>СИНТАКСИС</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<strong>while</strong> <em>test</em> <em>body</em>
|
|
|
|
|
</pre>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>ОПИСАНИЕ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Команда <strong>while</strong> всегда возвращает пустую строку.</p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p>Выражение <em>test</em> почти всегда лучше заключать в фигурные
|
|
|
|
|
скобки, иначе подстановки команд и переменных в нем будут
|
|
|
|
|
выполнены до исполнения команды и никакие изменения значений
|
|
|
|
|
переменных в скрипте body не изменят значения выражения
|
|
|
|
|
test. Это может привести к возникновению бесконечного
|
|
|
|
|
цикла. Если же выражение test помещено в фигурные скобки,
|
|
|
|
|
подстановки в нем выполняются при каждом вычислении (перед
|
|
|
|
|
каждым выполнением body). Например, если выполнить следующий
|
|
|
|
|
скрипт с и без скобок вокруг <strong><10</strong>, то без скобок
|
|
|
|
|
возникнет бесконечный цикл.</p>
|
|
|
|
|
|
|
|
|
|
<h2>ПРИМЕР</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<pre>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
while { < 10} {
|
|
|
|
|
puts x is
|
2015-10-19 13:27:31 +03:00
|
|
|
|
incr x
|
|
|
|
|
}
|
|
|
|
|
</pre>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|