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

    技术2022-05-11  73

    第十六课:循环控制语句之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)