summaryrefslogtreecommitdiffstats
path: root/doc/foreach.n
diff options
context:
space:
mode:
Diffstat (limited to 'doc/foreach.n')
-rw-r--r--doc/foreach.n25
1 files changed, 18 insertions, 7 deletions
diff --git a/doc/foreach.n b/doc/foreach.n
index 7054708..6c8d28e 100644
--- a/doc/foreach.n
+++ b/doc/foreach.n
@@ -5,7 +5,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: foreach.n,v 1.4 2004/10/27 12:53:22 dkf Exp $
+'\" RCS: @(#) $Id: foreach.n,v 1.5 2004/11/26 10:02:23 dkf Exp $
'\"
.so man.macros
.TH foreach n "" Tcl "Tcl Built-In Commands"
@@ -51,37 +51,48 @@ The \fBbreak\fR and \fBcontinue\fR statements may be
invoked inside \fIbody\fR, with the same effect as in the \fBfor\fR
command. \fBForeach\fR returns an empty string.
.SH EXAMPLES
+This loop prints every value in a list together with the square and
+cube of the value:
+.CS
+'\" Maintainers: notice the tab hacking below!
+.ta 32
+set values {1 3 5 7 2 4 6 8} ;# Odd numbers first, for fun!
+puts "Value\\tSquare\\tCube" ;# Neat-looking header
+\fBforeach\fR x $values { ;# Now loop and print...
+ puts " $x\\t [expr {$x**2}]\\t [expr {$x**3}]"
+}
+.CE
.PP
The following loop uses i and j as loop variables to iterate over
pairs of elements of a single list.
-.DS
+.CS
set x {}
\fBforeach\fR {i j} {a b c d e f} {
lappend x $j $i
}
# The value of x is "b a d c f e"
# There are 3 iterations of the loop.
-.DE
+.CE
.PP
The next loop uses i and j to iterate over two lists in parallel.
-.DS
+.CS
set x {}
\fBforeach\fR i {a b c} j {d e f g} {
lappend x $i $j
}
# The value of x is "a d b e c f {} g"
# There are 4 iterations of the loop.
-.DE
+.CE
.PP
The two forms are combined in the following example.
-.DS
+.CS
set x {}
\fBforeach\fR i {a b c} {j k} {d e f g} {
lappend x $i $j $k
}
# The value of x is "a d e b f g c {} {}"
# There are 3 iterations of the loop.
-.DE
+.CE
.SH "SEE ALSO"
for(n), while(n), break(n), continue(n)