第十六课:循环控制语句之while

第十六课:循环控制语句之while



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

  那么有没有一种方法,让程序自己确定要循环的次数呢?有,这个循环控制语句就是 while。看下面的一个例子16-1:
<? php
 
echo   ' <table border=1 width=300> ' ;
echo    " <tr><td width=30%>序号</td><td width=70%>商品</td></tr> " ;
 
while ( @ list ( $key , $sp =   each ( $_POST [ ' C ' ] ) ){
        
  
$num   =   $key + 1 ;
  
  
echo    " <tr><td>$num</td><td>$sp</td></tr> " ;
  
}
 
echo   ' </table> ' ;
 
?>
 
< form method = " POST "  action = " # " >
  
< p > 商品:
          
< input type = " checkbox "  name = " C[] "  value = " MP3 " > MP3 
          
< input type = " checkbox "  name = " C[] "  value = " PDA " > PDA 
          
< input type = " checkbox "  name = " C[] "  value = " VCD " > VCD 
          
< input type = " checkbox "  name = " C[] "  value = " MP4 " > MP4 
          
< input type = " checkbox "  name = " C[] "  value = " DVD " > DVD 
          
< input type = " checkbox "  name = " C[] "  value = " 手机 " > 手机 
          
< input type = " checkbox "  name = " C[] "  value = " 相机 " > 音乐 
          
< input type = " checkbox "  name = " C[] "  value = " DV " > DV 
          
< input type = " checkbox "  name = " C[] "  value = " 图书 " > 图书 </ p >
  
< p >< input type = " submit "  value = " 提交 "  name = " B1 " >< input type = " reset "  value = " 全部重写 "  name = " B2 " ></ p >
</ form >
上面这段代码无论你选择多少商品,它都会正确的打印表格。那么 while语句怎么使用呢?

while语法:

while ( expr ) statement

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

  下面看一个用 while语句实现阶乘的例子16-2:
< html >
< body >
< form action = ""  method = " post " >
请输入阶乘的阶数:
< input type = text name = steps value = 1 >< input type = submit value = 提交 >
</ form >
< br >
< font size = 4 > 阶乘是: </ font >
 
<? php
 
$sum   =   1 ;
$i   =   1 ;
 
while  (  $i   <=  @ $_POST [ ' steps ' ] ){
 
  
$sum   *=   $i ;
 
  
$i ++ ;
 
}
 
echo   $sum ;
echo   ' <p> ' ;
 
?>
</ body >
</ 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:
<? php
 
$i = 0 ;
 
do echo   $i ; }
while ( $i > 0 );
 
?>
我们照例出一道题来结束本课:你能使用 while来实现打印N行表格的程序吗?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值