PHP8的循环控制语句-PHP8知识详解

我们在上一节讲的是条件控制语句,本节课程我们讲解循环控制语句。循环控制语句中,主要有for循环、while循环、do...while循环和foreach循环。

在编写代码时,经常需要反复运行同一代码块。我们可以使用循环来执行这样的任务,而不是在脚本中添加若干几乎相等的代码行。

1、for循环语句

for循环是一种常见的循环语句,用于指定循环条件循环体。它包含三个表达式,分别控制循环的初始化、条件和每次迭代后的操作。for循环是PHP的计数循环结构,其语法格式为:

复制代码
<?php
    for(初始表达式;条件表达式;迭代表达式){
        语句;
    }
?>

其中,初始化表达式在第一次循环时无条件取一次值;条件表达式在每次循环开始前求值,如果值为真,则执行循环体里面的语句。否则,跳出循环,继续往下执行;迭代表达式在每次循环后被执行。for循环语句的流程控制执行图如下:

接下来,我们看一个经典示例:1到100的和,代码如下:

复制代码
<?php //1-100利用for循环1-100累加
 $sum=0;//初始化sum值为0
for($i=1;$i<=100;$i++){//定义i,循环次数,一般求1-100的和,从1开始一直加到100
          $sum+=$i;//每次累加传给sum,然后i循环,直道100。
}
echo "1-100之间累加的和为:".$sum;
?>

执行结果为:

复制代码
1-100之间累加的和为:5050

2、while循环

while循环是PHP中最简单的循环语句,使用while关键字,只要指定的条件为真,就会不断执行循环体。语法格式如下:

复制代码
<?php
while(条件表达式){
     循环语句;
}
?>

当表达式的值为真时,将执行循环体的语句,执行结束以后,再返回到表达式继续继续判断,直到表达式的值为假,才跳出循环。

while循环语句的执行流程控制图如下:

下面,我们也用一个经典案例进行代码示范,输出10以内的偶数,代码如下:

复制代码
<?php
$num=1;  //声明一个https://www.phpfw.com/tag/zhengxing/https://www.phpfw.com/tag/bianliang/$num
$str="10以内的偶数为:"; //声明一个字符型变量$str
while($num <= 10){  //判断变量是否小于等于10
     if($num % 2 == 0){ //判断是否是偶数
          $str.=$num." ";  //给$sumhttps://www.phpfw.com/tag/fuzhi/到$str
     }
     $num++; //变量$sum加1
}
echo $str; //输出https://www.phpfw.com/tag/zifuchuan/$str
?>

运行结果如下:

复制代码
10以内的偶数为:2 4 6 8 10

3、do...while循环:

do...while循环先执行一次循环体,然后再判断条件是否为真。如果条件为真,则继续执行循环体,否则循环结束。

while循环和do...while循环的区别在于,do...while循环比while循环多循环一次。当while表达式的值为假时,while循环直接跳出当前循环。而do...while循环语句则是先执行一遍程序块,然后再对表达式进行判断。do...while循环语句控制流程图如下:

通过一个示范代码进行学习,我们输出10(不含)以内的整数。代码如下:

复制代码
<?php
$i = 0; //声明一个整型变量 $i
do {
    echo $i; //输出变量$i
    $i++;   //变量$i加1
} while ($i < 10); //输出小于10的变量$i
?>

输出结果为:

复制代码
0123456789

4、foreach循环

foreach循环用于遍历数组对象的元素。示范代码:

复制代码
<?php
$array = [1, 2, 3, 4, 5];
foreach ($array as $value) {
    echo $value;
}
?>

运行结果为:

复制代码
12345

到此为止,循环控制语句中的for循环、while循环、do...while循环和foreach循环就讲解完毕。欢迎你学习《PHP8知识详解》系列教程。

相关推荐
是立不是利13 分钟前
前端交互基石:深入剖析JavaScript三级联动背后的设计哲学
开发语言·前端·javascript
老刘的望远镜22 分钟前
AgentScope Java 从零(03):Agent 的记性默认全开,我在第 50 轮翻了车
java·开发语言·javascript
Littlehero_12131 分钟前
QT自定义控件之电气接线图(源码开源)
开发语言·qt
中科三方1 小时前
DNS拨测到底在拨测什么?
开发语言·github·php·dns·云拨测
软件黑马王子1 小时前
20.Resources资源加载:基本实现
开发语言·前端框架·c#
李少兄1 小时前
Java 中只有值传递吗?
java·开发语言·python
企业通信技术笔记1 小时前
企业IM内外网隔离部署:DNS、证书、WebSocket与跨网接口设计
websocket·网络协议·架构·php·信息与通信
可乐鸡翅yeah_2 小时前
hls.js 播放质量埋点实战,采集卡顿、起播、错误指标定位线上用户问题
开发语言·前端·javascript·ecmascript·音视频·m3u8·音视频在线播放
szarron2 小时前
RF Demo Kit|NanoVNA 射频演示测试板完整上手教程,滤波器、衰减器、SOLT 校准学习板
开发语言·人工智能·学习·php·射频工程·频谱仪
边境悍匪2 小时前
蜗牛学苑 Java 智能体学习 Day39|SpringAI 会话存储、Function‑Call 工具调用、MCP 思维导图复盘
java·开发语言·spring boot·学习·阿里云