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

举报
迷彩 发表于 2023/06/20 23:01:57 2023/06/20
【摘要】 前言计算机最擅长功能之一就是按规定的条件重复执行某些操作,循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。循环结构可以看成一个条件判断语句和一个向回转向语句的组合。其特点是,在给定的条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。在PHP中提供了while,do-whil...

前言

计算机最擅长功能之一就是按规定的条件重复执行某些操作,循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。循环结构可以看成一个条件判断语句和一个向回转向语句的组合。其特点是,在给定的条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。在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;

执行结果:


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。