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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1993 The Regents of the University of California.
  3. '" Copyright (c) 1994-1997 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: while.n,v 1.3.18.1 2004/10/27 14:43:15 dkf Exp $
  9. '" 
  10. .so man.macros
  11. .TH while n "" Tcl "Tcl Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. while - Execute script repeatedly as long as a condition is met
  16. .SH SYNOPSIS
  17. fBwhile fItest bodyfR
  18. .BE
  19. .SH DESCRIPTION
  20. .PP
  21. The fBwhilefR command evaluates fItestfR as an expression
  22. (in the same way that fBexprfR evaluates its argument).
  23. The value of the expression must a proper boolean
  24. value; if it is a true value
  25. then fIbodyfR is executed by passing it to the Tcl interpreter.
  26. Once fIbodyfR has been executed then fItestfR is evaluated
  27. again, and the process repeats until eventually fItestfR
  28. evaluates to a false boolean value.  fBContinuefR
  29. commands may be executed inside fIbodyfR to terminate the current
  30. iteration of the loop, and fBbreakfR
  31. commands may be executed inside fIbodyfR to cause immediate
  32. termination of the fBwhilefR command.  The fBwhilefR command
  33. always returns an empty string.
  34. .PP
  35. Note: fItestfR should almost always be enclosed in braces.  If not,
  36. variable substitutions will be made before the fBwhilefR
  37. command starts executing, which means that variable changes
  38. made by the loop body will not be considered in the expression.
  39. This is likely to result in an infinite loop.  If fItestfR is
  40. enclosed in braces, variable substitutions are delayed until the
  41. expression is evaluated (before
  42. each loop iteration), so changes in the variables will be visible.
  43. For an example, try the following script with and without the braces
  44. around fB$x<10fR:
  45. .CS
  46. set x 0
  47. fBwhilefR {$x<10} {
  48.     puts "x is $x"
  49.     incr x
  50. }
  51. .CE
  52. .SH EXAMPLE
  53. Read lines from a channel until we get to the end of the stream, and
  54. print them out with a line-number prepended:
  55. .CS
  56. set lineCount 0
  57. fBwhilefR {[gets $chan line] >= 0} {
  58.     puts "[incr lineCount]: $line"
  59. }
  60. .CE
  61. .SH "SEE ALSO"
  62. break(n), continue(n), for(n), foreach(n)
  63. .SH KEYWORDS
  64. boolean value, loop, test, while