首页 » 建站技术 » PHP 技术 » 浏览内容

[PHP中文社区教程] 第十六课:循环控制语句之while


2006-12-21 16:07:28 5,716 0 发表评论 字体: 作者:C.K.
标签: php中文社区教程

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

From:http://www.phpnet.cn/bbs/viewthread.php?tid=486&extra=page%3D2

  说到 PHP中的循环控制你一定会想到我们前几天课程里讲到的for语句吧。是的,那个for真是太有趣了,我只用几行代码就能让它打印一个30行的表格,我把那个30简单的改成100,它就会乖乖的打印一个100行的表格。现在,我们的网上商城里有许多商品供客户挑选,当客户把所选中的商品提交后,我们要用表格一目了然的把他选择的商品呈现在他面前。你准备让你的程序打印一个多少行的表格呢?不知道吧?傻眼了吧?因为你根本就不知道客户选中了多少件商品,所以也不知道让你的 for循环多少次。

  那么有没有一种方法,让程序自己确定要循环的次数呢?有,这个循环控制语句就是while。看下面的一个例子16-1:

<span style="color: #000000"><br /><span style="color: #0000BB">&lt;?php<br /><br />&nbsp;<br /><br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #DD0000">&#39;&lt;table&nbsp;border=1&nbsp;width=300&gt;&#39;</span><span style="color: #007700">;<br /><br />echo&nbsp;&nbsp;</span><span style="color: #DD0000">"&lt;tr&gt;&lt;td&nbsp;width=30%&gt;序号&lt;/td&gt;&lt;td&nbsp;width=70%&gt;商品&lt;/td&gt;&lt;/tr&gt;"</span><span style="color: #007700">;<br /><br />&nbsp;<br /><br />while(&nbsp;@list(</span><span style="color: #0000BB">$key</span><span style="color: #007700">,</span><span style="color: #0000BB">$sp</span><span style="color: #007700">)&nbsp;=&nbsp;</span><span style="color: #0000BB">each</span><span style="color: #007700">(</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">&#39;C&#39;</span><span style="color: #007700">]&nbsp;)&nbsp;){<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;</span><span style="color: #0000BB">$num&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$key</span><span style="color: #007700">+</span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;echo&nbsp;&nbsp;</span><span style="color: #DD0000">"&lt;tr&gt;&lt;td&gt;$num&lt;/td&gt;&lt;td&gt;$sp&lt;/td&gt;&lt;/tr&gt;"</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;<br /><br />}<br /><br />&nbsp;<br /><br />echo&nbsp;</span><span style="color: #DD0000">&#39;&lt;/table&gt;&#39;</span><span style="color: #007700">;<br /><br />&nbsp;<br /><br /></span><span style="color: #0000BB">?&gt;<br /><br /></span>&nbsp;<br /><br />&lt;form&nbsp;method="POST"&nbsp;action="#"&gt;<br /><br />&nbsp;&nbsp;&lt;p&gt;商品:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="MP3"&gt;MP3 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="PDA"&gt;PDA <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="VCD"&gt;VCD <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="MP4"&gt;MP4 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="DVD"&gt;DVD <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="手机"&gt;手机 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="相机"&gt;音乐 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="DV"&gt;DV <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="checkbox"&nbsp;name="C[]"&nbsp;value="图书"&gt;图书&lt;/p&gt;<br /><br />&nbsp;&nbsp;&lt;p&gt;&lt;input&nbsp;type="submit"&nbsp;value="提交"&nbsp;name="B1"&gt;&lt;input&nbsp;type="reset"&nbsp;value="全部重写"&nbsp;name="B2"&gt;&lt;/p&gt;<br /><br />&lt;/form&gt;</span><br />

 上面这段代码无论你选择多少商品,它都会正确的打印表格。那么 while语句怎么使用呢?

while语法:

while ( expr ) statement

  while 语句的含义是十分简单的,它告诉PHP在while表达式为的情况下反复执行嵌套的语句,直到表达式的值为循环结束。表达式在每一次循环开始的时候检查,如果表达式在一开始就为,那么循环一次也不会执行。

  下面看一个用 while语句实现阶乘的例子16-2:

<html><br/><body><br/><form action="" method="post"><br/>请输入阶乘的阶数:<input type=text name=steps value=1><input type=submit value=提交><br/></form><br/><br><br/><font size=4>阶乘是:</font><br/> <br/><?php<br/> <br/>$sum = 1;<br/>$i = 1;<br/> <br/>while ( $i <= @$_POST[&#39;steps&#39;] ){<br/> <br/> &nbsp;$sum *= $i;<br/> <br/> &nbsp;$i++;<br/> <br/>}<br/> <br/>echo $sum;<br/>echo &#39;<p>&#39;;<br/> <br/>?><br/></body><br/></html>

  这个例子中,每次循环开始时都检查 $i <= @$_POST['steps'] 的值是否为真(TRUE),真则执行嵌套语句,假(FALSE)则结束循环。

  例子16-1可能让你有些糊涂吧,有几个地方要给你解释下:在表单中,所有商品的name属性值都是”C”,在C后面加上中括号([ ])后,表单提交时,PHP会把这些数据都转化为一个键名为“C”的$_POST数组,$_POST['C'][0]是第一个数据,$_POST['C'][1]是第二个数据,$_POST['C'][2]是第三个数据。。。list($key,$sp) = each($_POST['C'])结构表示把数组$_POST['C']里当前的键值和数据赋值给$key和$sp,然后数组指针下移,直到数组里不在有数据。当然,这个例子最简单的还是使用foreach语句,while与数据库查询语句结合使用要多些,但相关知识我们还未学习到,暂且把这个实例用whille实现,让大家学习一下它的用法。

  while 语句主要用在那些循环次数不明确的循环控制。

do…while…语句:

do { statement }
while( expr )

  do…while语句是先执行一次循环模块,然后再进行条件判断,无论判断条件是否满足,循环都会被执行一次。例如16-3:

<span style="color: #000000"><br /><span style="color: #0000BB">&lt;?php<br /><br />&nbsp;<br /><br />$i</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /><br />&nbsp;<br /><br />do{&nbsp;echo&nbsp;</span><span style="color: #0000BB">$i</span><span style="color: #007700">;&nbsp;}<br /><br />while(</span><span style="color: #0000BB">$i</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /><br />&nbsp;<br /><br /></span><span style="color: #0000BB">?&gt;</span><br /></span><br />

  我们照例出一道题来结束本课:你能使用while来实现打印N行表格的程序吗?

网站统计 Statistics

  • 创建时间: 2005年1月3日 距今5064 天
  • 日志总数: 2461
  • 评论总数: 630
  • 标签总数: 654
  • 链接总数: 273
  • 最后更新: 2018-8-31 17:57:04
  • 您是本站第 14159113 位访客

广告区 Guǎng Gào