foreach.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1993 The Regents of the University of California.
  3. '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: foreach.n,v 1.3.18.1 2004/10/27 12:52:40 dkf Exp $
  9. '" 
  10. .so man.macros
  11. .TH foreach n "" Tcl "Tcl Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. foreach - Iterate over all elements in one or more lists
  16. .SH SYNOPSIS
  17. fBforeach fIvarname list bodyfR
  18. .br
  19. fBforeach fIvarlist1 list1fR ?fIvarlist2 list2 ...fR? fIbodyfR
  20. .BE
  21. .SH DESCRIPTION
  22. .PP
  23. The fBforeachfR command implements a loop where the loop
  24. variable(s) take on values from one or more lists.
  25. In the simplest case there is one loop variable, fIvarnamefR,
  26. and one list, fIlistfR, that is a list of values to assign to fIvarnamefR.
  27. The fIbodyfR argument is a Tcl script.
  28. For each element of fIlistfR (in order
  29. from first to last), fBforeachfR assigns the contents of the
  30. element to fIvarnamefR as if the fBlindexfR command had been used
  31. to extract the element, then calls the Tcl interpreter to execute
  32. fIbodyfR.
  33. .PP
  34. In the general case there can be more than one value list
  35. (e.g., fIlist1fR and fIlist2fR),
  36. and each value list can be associated with a list of loop variables
  37. (e.g., fIvarlist1fR and fIvarlist2fR).
  38. During each iteration of the loop
  39. the variables of each fIvarlistfP are assigned
  40. consecutive values from the corresponding fIlistfP.
  41. Values in each fIlistfP are used in order from first to last,
  42. and each value is used exactly once.
  43. The total number of loop iterations is large enough to use
  44. up all the values from all the value lists.
  45. If a value list does not contain enough
  46. elements for each of its loop variables in each iteration,
  47. empty values are used for the missing elements.
  48. .PP
  49. The fBbreakfR and fBcontinuefR statements may be
  50. invoked inside fIbodyfR, with the same effect as in the fBforfR
  51. command.  fBForeachfR returns an empty string.
  52. .SH EXAMPLES
  53. .PP
  54. The following loop uses i and j as loop variables to iterate over
  55. pairs of elements of a single list.
  56. .DS
  57. set x {}
  58. fBforeachfR {i j} {a b c d e f} {
  59.     lappend x $j $i
  60. }
  61. # The value of x is "b a d c f e"
  62. # There are 3 iterations of the loop.
  63. .DE
  64. .PP
  65. The next loop uses i and j to iterate over two lists in parallel.
  66. .DS
  67. set x {}
  68. fBforeachfR i {a b c} j {d e f g} {
  69.     lappend x $i $j
  70. }
  71. # The value of x is "a d b e c f {} g"
  72. # There are 4 iterations of the loop.
  73. .DE
  74. .PP
  75. The two forms are combined in the following example.
  76. .DS
  77. set x {}
  78. fBforeachfR i {a b c} {j k} {d e f g} {
  79.     lappend x $i $j $k
  80. }
  81. # The value of x is "a d e b f g c {} {}"
  82. # There are 3 iterations of the loop.
  83. .DE
  84. .SH "SEE ALSO"
  85. for(n), while(n), break(n), continue(n)
  86. .SH KEYWORDS
  87. foreach, iteration, list, looping