diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-10-17 19:52:11 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-10-17 19:52:11 (GMT) |
commit | da0aaf36f00f649cd910b1bcb972b4ad476cd5fd (patch) | |
tree | 3d5215355c39587ed375451b86b7f9962f739a5f /tcl8.6/doc/while.n | |
parent | 9bfb1e415c87790341c6a3520b081292fcdb058b (diff) | |
parent | c8bc058c566bbcbcd23e732197d64fecc739008f (diff) | |
download | blt-da0aaf36f00f649cd910b1bcb972b4ad476cd5fd.zip blt-da0aaf36f00f649cd910b1bcb972b4ad476cd5fd.tar.gz blt-da0aaf36f00f649cd910b1bcb972b4ad476cd5fd.tar.bz2 |
Merge commit 'c8bc058c566bbcbcd23e732197d64fecc739008f' as 'tcl8.6'
Diffstat (limited to 'tcl8.6/doc/while.n')
-rw-r--r-- | tcl8.6/doc/while.n | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tcl8.6/doc/while.n b/tcl8.6/doc/while.n new file mode 100644 index 0000000..961260c --- /dev/null +++ b/tcl8.6/doc/while.n @@ -0,0 +1,65 @@ +'\" +'\" Copyright (c) 1993 The Regents of the University of California. +'\" Copyright (c) 1994-1997 Sun Microsystems, Inc. +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +.TH while n "" Tcl "Tcl Built-In Commands" +.so man.macros +.BS +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +while \- Execute script repeatedly as long as a condition is met +.SH SYNOPSIS +\fBwhile \fItest body\fR +.BE +.SH DESCRIPTION +.PP +The \fBwhile\fR command evaluates \fItest\fR as an expression +(in the same way that \fBexpr\fR evaluates its argument). +The value of the expression must a proper boolean +value; if it is a true value +then \fIbody\fR is executed by passing it to the Tcl interpreter. +Once \fIbody\fR has been executed then \fItest\fR is evaluated +again, and the process repeats until eventually \fItest\fR +evaluates to a false boolean value. \fBContinue\fR +commands may be executed inside \fIbody\fR to terminate the current +iteration of the loop, and \fBbreak\fR +commands may be executed inside \fIbody\fR to cause immediate +termination of the \fBwhile\fR command. The \fBwhile\fR command +always returns an empty string. +.PP +Note: \fItest\fR should almost always be enclosed in braces. If not, +variable substitutions will be made before the \fBwhile\fR +command starts executing, which means that variable changes +made by the loop body will not be considered in the expression. +This is likely to result in an infinite loop. If \fItest\fR is +enclosed in braces, variable substitutions are delayed until the +expression is evaluated (before +each loop iteration), so changes in the variables will be visible. +For an example, try the following script with and without the braces +around \fB$x<10\fR: +.PP +.CS +set x 0 +\fBwhile\fR {$x<10} { + puts "x is $x" + incr x +} +.CE +.SH EXAMPLE +.PP +Read lines from a channel until we get to the end of the stream, and +print them out with a line-number prepended: +.PP +.CS +set lineCount 0 +\fBwhile\fR {[gets $chan line] >= 0} { + puts "[incr lineCount]: $line" +} +.CE +.SH "SEE ALSO" +break(n), continue(n), for(n), foreach(n) +.SH KEYWORDS +boolean, loop, test, while |