这篇文章主要介绍“php中while循环如何用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中while循环如何用”文章能帮助大家解决问题。
php中while循环有两种:1、while循环语句,先对循环条件进行判断,当条件满足,则执行循环体,不满足时则停止;语法“while(表达式){ 循环体语句块;}”。2、“do while”循环语句,先在执行了一次循环体中的“语句块”之后,然后再对循环条件进行判断,如果为真则继续循环,如果为假,则终止循环;语法“do{循环体语句块;}while(表达式);”。
循环语句可以在满足条件的情况下反复执行某一个操作。在 PHP 中提供了 4 个循环控制语句,分别是 while、do while、for 和 foreach 循环语句。本篇文章我们主要介绍一下 while 和 do while 循环语句。
1、while循环语句
while循环语句是一种
当型循环语句,先对循环条件进行判断,当条件满足,则执行循环体,不满足时则停止。
作用:反复执行某一项操作,直到指定的条件不成立。
特点:先判断表达式,当表达式结果为真时执行相应的语句。
while循环的一般形式为:
while(表达式){ //表达式为循环条件 PHP语句块; //PHP语句块为循环体 }
语句解析:
先计算“表达式”的值,当值为真时, 执行循环体内的“PHP语句块”;
说明:“表达式”的计算结果是布尔类型( TRUE 或 FALSE)的,如果是其他类型的值也会自动转换为布尔类型的值(因为PHP是弱语言类型,会根据变量的值,自动把变量转换为正确的数据类型)。
“语句块”就是由
{ }包围的一个或多个语句的集合;如果语句块中只有一个语句,也可以省略
{ }。
执行结束后,返回到表达式,再次计算表达式的值进行判断,当表达式值为真,则继续执行“语句块”……这个过程会一直重复
直到表达式的值为假时才跳出循环,执行while 下面的语句。
while语句的流程图如下所示:
通常“表达式”是使用比较运算符或者逻辑运算符计算后的值
示例:计算1加到100的值
<?php header("Content-type:text/html;charset=utf-8"); $i = 1; $sum=0; while($i<=100){ $sum+=$i; $i++; } echo "1加到100的值为:".$sum ; ?>
输出结果:
while 循环与 if 语句一样可以多层嵌套在一起使用,比如我们可以使用两层嵌套的 while 循环输出一个表格,代码如下所示:
<?php echo '<table border="1">'; $x = 0; while ($x < 10) { echo '<tr align="center">'; $y = 0; while ($y < 10) { echo '<td>'.($x*10+$y).'</td>'; $y++; } echo '</tr>'; $x++; } echo '</table>'; ?>
注:“死循环”--无法靠自身的控制终止的循环
如果表达式一直为真,循环条件一直成立,则while 循环会一直执行下去,永不结束,成为“死循环”
<?php $i=1; while($i){ echo $i; } ?>
运行程序后,会一直输出变量
$i的值,直到用户强制关闭。
2、do-while循环语句
do-while循环语句是一种“
直到型”循环语句,它是先在执行了一次循环体中的“语句块”之后,然后再对循环条件进行判断,如果为真则继续循环,如果为假,则终止循环。
因此:不论表达式的结果,do-while循环语句至少会执行一次“语句块”。
do-while循环语句的特点:先执行循环体,然后判断循环条件是否成立。
do-while循环的一般形式为:
do{ 语句块; }while(表达式);//表达式为循环条件
说明:
和while循环一样,do-while循环中“表达式”的计算结果一定是布尔型的 TRUE 或 FALSE,如果是其他类型的值也会自动转换为布尔类型的值。
do-while语句最后的分号
;是无法省略的(一定要有),它是do while循环语法的一部分。
语句解析:
先执行一次循环体中的“语句块”,然后判断“表达式”的值,当“表达式”的值为真时,返回重新执行循环体中的语句块……这个过程会一直重复
直到表达式的值为假时,跳出循环,此时循环结束,执行后面的语句。
do-while循环语句的流程图如下所示:
示例:
还是之前文章的例子:计算1加到100的值
<?php header("Content-type:text/html;charset=utf-8"); $i = 1; $sum=0; do { $sum += $i; $i++; } while ($i <= 100); echo '1 + 2 + 3 +...+ 99 + 100 = '. $sum; ?>
输出结果: