写点什么

【web 开发基础】PHP 循环结构之 while 循环 -PHP 快速入门 (17)

作者:迷彩
  • 2022-10-27
    广东
  • 本文字数:1817 字

    阅读完需:约 6 分钟

前言

计算机最擅长功能之一就是按规定的条件重复执行某些操作,循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。循环结构可以看成一个条件判断语句和一个向回转向语句的组合。其特点是,在给定的条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。在 PHP 中提供了 while,do-while 和 for 三种循环。这三种循环可以用来处理同一问题,一般情况下他们可以互相替换。常用的三种循环结构学习的重点在于弄清楚它们的相同与不同之处。以便在不同的场合下使用。这就需要清楚三种循环的格式和执行顺序,将每种循环的流程图解透彻后就会明白如何替换使用。例如:把 while 循环的例题用 for 循环语句重新编写一个程序,这样能更好的理解它们的作用。

特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成为死循环,这是初学者易犯的常见错误,所以使用循环时一定要有一个停止的条件。根据循环停止条件的不同,在 PHP 中提供了两种类型的循环语句。

  1. 一种是计数循环语句,通常使用 for 循环语句完成

  2. 另一种是条件型循环语句,通常使用 while 或者 do...while..循环语句完成


计数循环语句是指按指定的次数执行循环.比如:我们要打印 100 份的文档,我们在打印机设置好打印 100 份,没打 1 份,打印机就计数一次累加 1;反复打印一百次就结束.所谓的条件型循环语句是指遇到特定的条件才停止循环,循环的次数是不固定的.这就好比我拿来一沓纸,放到打印机上,我不知道几张,打完为止,具体该循环多少次是不知道的,并不是固定的


while 循环语句

while 语句也称为 while 循环,是 PHP 中最简单的循环类型.与 if 语句相同,while 语句也需要设定一个布尔类型条件,当条件为真时,他不断地执行一个语句块,直到条件为假就停止循环(跳出或结束循环)。if 语句只执行后续代码一次,而 while 循环中只要条件为真,就会不断地执行后续代码。while 循环通常用于控制循环次数未知的循环结构。while 循环语法格式如下:

while(表达式){ //声明while语句	 语句块;//循环体,但表达式的值为true时,进入循环体内,执行里面的语句}
复制代码

while 语句中"表达式"的计算结果一定要是布尔型的 true 值或 false 值,如果是其他类型的值也会自动转换为布尔类型的值。通常这个表达式是使用比较运算符或者逻辑运算符计算后的值。‘语句块’是一条语句或者一条复合语句(代码块)。当 while 语句控制执行一条语句时可以加花括号“{}”,也可以不加。如果是多条语句的代码块,那就一定要使用花括号“{}”括起来,才能一起被 while 语句控制执行,程序执行到 while 语句后,要养成好习惯不惯是一条还是多条语句都加上花括号“{}”,避免由于未加括号产生错误,将发生以下事件:

  1. 计算表达式的值,确定是 true 还是 false

  2. 如果表达式的值为 false,while 语句将结束,然后执行 while 语句之后的语句。有时,如果 while 表达式的值一开始就是 false,则循环语句,每一次都不会执行

  3. 如果表达式的值为 true,则执行 while 语句控制的语句块

  4. 返回到第 1 步执行


编程实践


我们通过实例来了解 while 的基本用法。以下例子将执行 10 输出语句。虽然 while 循环通常用于控制循环次数未知的循环结构,但也可以使用计数的方式控制循环执行次数。

<?php $i = 1;while($i<=10){	echo "这是第" . $i . "次输出结果<br>";	$i++;}
复制代码

执行结果:

while 语句与 if 语句一样也可以多成嵌套,通常是在有矩阵形式的输出时使用。例如,输出 10 行 10 列的数字时,就可以使用两层循环嵌套,内存的循环执行一次输出一个数字,连续执行 10 则输出一行数据。外层循环执行一次,则内层循环就执行 10 次输出一行(10 列),外层循环执行 10 次,则输出 10 行,共输出 100 个数字。

<?php$i = 0;while($i < 10){	$j = 0;	while($j < 10){		echo ($i * 10 + $j) . ",";		$j++;	}	echo "<br>";	$i++;}
复制代码

执行结果:


while 语句还可嵌套多层,如果没有必要,最好不要超过 3 层或以上。因为循环层次过多,那么循环次数会成倍增长,会影响 PHP 执行的效率。如果需要输出 10 个一样的数字矩阵,只需要在上面的代码中的外层循环的外面再加上一层 10 次的循环即可。这样循环的此时将变成 1000 次。

我们还可以使用循环计算数列的数字累加:比如计算 1-100 的数字的和,在数学中我们都知道使用高斯的求和(和=(首项+末项)×项数/2)公式来进行求解,现在我们用循环来求解该如何做呢?

<?php$i = 1;$sum = 0;while($i <= 100){	$sum = $sum + $i;	$i++;}echo $sum;
复制代码

执行结果:


发布于: 刚刚阅读数: 7
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP 循环结构之while循环 -PHP 快速入门 (17)_while循环_迷彩_InfoQ写作社区