Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 05cd670d8a02b2b4a0ffb1756f2e8308 > files > 24

php-manual-zh-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>do-while</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PHP 手册"
HREF="index.html"><LINK
REL="UP"
TITLE="控制结构"
HREF="language.control-structures.html"><LINK
REL="PREVIOUS"
TITLE="while"
HREF="control-structures.while.html"><LINK
REL="NEXT"
TITLE="for"
HREF="control-structures.for.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PHP 手册</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="control-structures.while.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>章 16. 控制结构</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="control-structures.for.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="control-structures.do.while"
><TT
CLASS="literal"
>do-while</TT
></A
></H1
><P
>&#13;   <TT
CLASS="literal"
>do-while</TT
> 和 <TT
CLASS="literal"
>while</TT
>
   循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的
   <TT
CLASS="literal"
>while</TT
> 循环主要的区别是 <TT
CLASS="literal"
>do-while</TT
>
   的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的
   <TT
CLASS="literal"
>while</TT
> 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为
   <TT
CLASS="constant"
><B
>FALSE</B
></TT
> 则整个循环立即终止)。
  </P
><P
>&#13;   <TT
CLASS="literal"
>do-while</TT
> 循环只有一种语法:
   <DIV
CLASS="informalexample"
><P
></P
><A
NAME="AEN4787"
></A
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br />$i </font><font color="#007700">= </font><font color="#0000BB">0</font><font color="#007700">;<br />do {<br />&nbsp;&nbsp;&nbsp;echo </font><font color="#0000BB">$i</font><font color="#007700">;<br />} while (</font><font color="#0000BB">$i </font><font color="#007700">&gt; </font><font color="#0000BB">0</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
><P
></P
></DIV
>
  </P
><P
>&#13;    以上循环将正好运行一次,因为经过第一次循环后,当检查表达式的真值时,其值为
    <TT
CLASS="constant"
><B
>FALSE</B
></TT
>($i 不大于 0)而导致循环终止。
  </P
><P
>&#13;   资深的 C 语言用户可能熟悉另一种不同的 <TT
CLASS="literal"
>do-while</TT
>
   循环用法,把语句放在 <TT
CLASS="literal"
>do-while</TT
>(0) 之中,在循环内部用
   <A
HREF="control-structures.break.html"
><TT
CLASS="literal"
>break</TT
></A
>
   语句来结束执行循环。以下代码片段示范了此方法:
   <DIV
CLASS="informalexample"
><P
></P
><A
NAME="AEN4796"
></A
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /></font><font color="#007700">do {<br />&nbsp;&nbsp;&nbsp;&nbsp;if (</font><font color="#0000BB">$i </font><font color="#007700">&lt; </font><font color="#0000BB">5</font><font color="#007700">) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo </font><font color="#DD0000">"i is not big enough"</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$i </font><font color="#007700">*= </font><font color="#0000BB">$factor</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if (</font><font color="#0000BB">$i </font><font color="#007700">&lt; </font><font color="#0000BB">$minimum_limit</font><font color="#007700">) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;echo </font><font color="#DD0000">"i is ok"</font><font color="#007700">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#FF8000">/* process i */<br /><br /></font><font color="#007700">} while(</font><font color="#0000BB">0</font><font color="#007700">);<br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
><P
></P
></DIV
>
  </P
><P
>&#13;   如果还不能立刻理解也不用担心。即使不用此“特性”也照样可以写出强大的代码来。
  </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="control-structures.while.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>起始页</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="control-structures.for.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><TT
CLASS="literal"
>while</TT
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="language.control-structures.html"
ACCESSKEY="U"
>上一级</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><TT
CLASS="literal"
>for</TT
></TD
></TR
></TABLE
></DIV
></BODY
></HTML
>