PHP-分支语句、while循环、for循环

分支语句

无论在何种编程语言中,流程控制都是很重要的内容。由于 PHP 的大部分语法都继承了C语言的特点,
因此在流程控制方面,PHP 有着和C语言类似的流程控制。
if else 语句是流程控制中根据条件判断执行的一种。该语句执行时先对条件进行判断,然后根据判断结
果做出相应的操作。它又可以细分为三种,分别是 if 语句、if…else 语句、if…else if…else 语句。

  1. if 语句

if 语句是流程控制中最简单的一种。只判断某个条件是否为真,如果为真就执行特定的语句块。语法格
式如下

if (判断条件) {
语句块;}

如果需要执行的语句块包含一条以上的语句,则要使用{ }把 它们括起来,表示一个整体;如果要执行的
语句只有一条,就可以省略大括号标记。像下面这样

if (判断条件)
一条语句;

在这里插入图片描述

<?php
//定义一个数字,使用 if 语句判断这个数字是不是偶数,$num = 34;if ($num % 2 == 0) {echo '$num ='.$num.', 是偶数!';}?>

if…else 语句
if 语句只能对判断结果为真的情况执行操作,这在很多情况下是不够的,于是就有了 if…else 这种形式的
语句。与 if 判断不同,if…else 语句不仅对判断结果为真的情况执行操作,对非真的情况也可以执行相应
的操作。
else 语句延伸了 if 语句,可以在 if 语句中表达式的值为 FALSE 时执行相应的语句。另外需要注意的
是,else 语句是 if 语句的从句,必须和 if 语句一起使用,不能单独存在。

if (判断条件) {
语句块 1;} else {
语句块 2;}

在上面的格式中,如果“判断条件”为真,则执行“语句块 1”;否则执行“语句块 2”。“语句块 1”和“语句块
2”都可以包含多条语句。与 if 语句相同的是,如果“语句块 1”和“语句块 2”中都只包含一条语句的话,可
以省略大括号{ }.
在这里插入图片描述

 <?php$num = rand(1,31);  //生成一个 1~31 之间的随机数if ($num % 2 == 0) {echo '$num ='.$num.', 是偶数!';} else {echo '$num ='.$num.', 是奇数!';}?>

if…else if…else 语句
else if 语句和 else 语句一样,它延伸了 if 语句,else if 语句会根据不同的表达式来确定执行哪个语句

 if (判断条件 1) {语句块 1;} else if (判断条件 2) {语句块 2;} else if (判断条件 3) {语句块 3;}......else if (判断条件 n) {
语句块 n;}else{
语句块 n+1;}

在上面的 else if 的语法中,如果第一个“判断条件 1”为 TRUE,则执行“语句块 1”语句;如果第二个“判断
条件 2”为 TRUE,则执行“语句块 2”语句;以此类推。如果表达式的条件都不为 TRUE,则执行 else 子句
中的“语句块 n+1”语句,当然最后的 else 语句也可以省略。
在 else if 语句中同时只能有一个表达式为 TRUE,即在 else if 语句中只能有一个语句块被执行。如果有
多个表达式的值为 TRUE 时,只会执行第一个表达式所对应的语句块。
在这里插入图片描述

<?php$score = 89; 
if ($score > 90) {echo '成绩的级别为:优!';} else if ($score > 70) {echo '成绩的级别为:良!';} else if ($score > 60) {echo '成绩的级别为:中!';} else {echo '成绩的级别为:差!';}?>

switch
switch 语句和 if…else if…else 语句相似,也是一种分支结构,与 if…else if…else 语句相比 switch 语句
更加简洁明了。
switch 语句由一个表达式和多个 case 标签组成,case 标签后紧跟一个代码块,case 标签作为这个代码
块的标识。

switch(表达式){case1:
语句块 1;break;case2:
语句块 2;break;... ...casen:
语句块 n;break;default:
语句块 n+1;}

switch 语句根据表达式的值,依次与 case 中的值进行比较,如果不相等,继续查找下一个 case;如果
相等,就会执行对应的语句,直到 switch 语句结束或遇到 break 为止。
一般来说,switch 语句最终都有一个默认值 default,如果在前面的 case 中没有找到相符的条件,则执
行默认语句,和 else 语句类似。
在这里插入图片描述
和 if 语句不同的是,switch 语句后面表达式的数据类型只能是整型或字符串,不能是 bool 型。通
常这个表达式是一个变量名称,虽然 PHP 是弱类型语言,在 switch 后面表达式的变量可以是任意
类型数据,但为了保证匹配执行的准确性,最好只使用整型或字符串中的一种类型。
和 if 语句不同的是,switch 语句后面的花括号是必须有的。
case 语句的个数没有规定,可以无限增加。但 case 标签和 case 标签后面的值之间应该有一个空
格,值后面必须有一个冒号,这是语法的一部分。
switch 匹配完成以后,将依次逐条执行匹配的分支模块中的语句,直到 switch 结构结束或者遇到
了 break 语句才停止执行。所以,如果一个分支语句的后面没有写上 break 语句,程序将会继续
执行下一个分支语句的内容。
与 if 语句中的 else 类似,switch 语句中 default 标签直接在后面加上一个冒号,看似没有条件,
其实是有条件的,条件就是“表达式”的值不能与前面任何一个 case 标签后的值相等,这时才执行
default 分支中的语句。default 标签和 if 中的 else 子句一样,它不是 switch 语句中必需的,可以
省略

<?php$week = date('D');
##  
循环语句
循环语句可以在满足条件的情况下反复执行某一个操作。在 PHP 中提供了 4 个循环控制语句,分别是 
whiledo whileforforeach(主要用于遍历数组)循环语句。1. while 循环 
while 循环的作用是反复执行某一项操作,是循环语句中最简单的一个。该语句的特点是:先判断表达
式,当表达式结果为真时执行相应的语句。
while 循环的语法格式如下:switch($week){case 'Mon':echo '星期一';break;case 'Tue':echo '星期二';break;case 'Wed':echo '星期三';break;case 'Thu':echo '星期四';break;case 'Fri':echo '星期五';break;case 'Sat':echo '星期六';break;case 'Sun':echo '星期日';break;}?>
  1. while循环
    while 循环的作用是反复执行某一项操作,是循环语句中最简单的一个。该语句的特点是:先判断表达
    式,当表达式结果为真时执行相应的语句。
 while (表达式) {
语句块;}

当表达式的值为真时,将执行循环体内的 PHP 语句块,执行结束后,再返回到表达式继续进行判断,判
断为真时继续执行语句块中的代码,直到表达式的值为假时才跳出循环。
在这里插入图片描述
while 循环中“表达式”的计算结果一定要是布尔型的 TRUE 或 FALSE,如果是其他类型的值也会自动转换
为布尔类型的值。通常这个表达式是使用比较运算符或者逻辑运算符计算后的值。“语句块”是一条语句
或一个复合语句(代码块)。当 while 循环语句中只有一条语句时可以将包裹代码块的大括号{ }省略。
如果是多条语句的代码块,则一定要使用大括号{ }包裹起来。

<?php$num = 1;while($num <= 10) {echo $num.($num == 10 ? '' : ', ');$num++;}?>

do while 循环
do while 和 while 循环非常相似,区别在于 do while 循环的表达式是在每次循环结束时检查而不是在
开始时,而且不论表达式的结果如何 do while 循环语句都会执行一次,因为表达式的值是每次循环结束
后才检查的。而在 while 循环中就不同了,表达式的值在循环开始时检查,如果一开始就为 FALSE,则
整个循环立即终止。

do {
语句块;} while (表达式);

其中 while 语句中“表达式”的计算结果也一定要是布尔型的 TRUE 或 FALSE。“语句块”也可以是一条语句
或一个复合语句(代码块)。当 do while 语句语句块中只有一条语句时,也可以省略大括号{ }。
注意:使用 do while 时最后一定要有一个分号;,分号也是 do while 循环语法的一部分。
do while 循环语句的执行流程是:先执行一次循环体中的语句块,然后判断表达式的值,当表达式的值
为 TRUE 时,返回重新执行循环体中的语句块,如此反复,直到表达式的值等于 FALSE 为止,此时循环
结束。其特点是先执行循环体,然后判断循环条件是否成立。
在这里插入图片描述

<?php$sum = 0;$i = 1;do {$sum += $i;$i++;} while ($i <= 50);echo '1 + 2 + 3 +...+ 49 + 50 = '. $sum;?>

for循环
for 循环是 PHP 中最复杂的循环结构。for 循环语句能够按照已知的循环次数进行循环操作,适用于明
确知道执行次数的情况。
for 循环的格式和前面介绍的while 和 do while 两种循环语句不一样,for 循环将控制循环次数的变量预
先定义在 for 语句中。虽然 for 循环是 PHP 中最复杂的循环结构,但使用起来非常方便。

for (初始化表达式; 条件判断; 变量更新) {
循环体;}

参数说明如下:
·初始化表达式:通常用于声明一个计数器的初始值,即循环开始的值;
·条件判断:用于控制是否执行循环体中的代码,如果条件为 FALSE ,则立即退出循环;
·变量更新:循环每执行一次,马上修改计数器的值;
·循环体:条件判断为真时,需要执行的若干代码。
在这里插入图片描述
通过 for 循环来计算 100 的阶乘

<?php$sum = 1;for ($i = 1; $i <= 100; $i++) {$sum *= $i;}echo '100! = '.$sum;?>

for 循环语句也可以像 while 语句一样嵌套使用,即在 for 循环语句中包含另外的一个或多个 for 循环语
句。通过对 for 循环语句进行嵌套,可以完成一些复杂的编程。比如打印九九乘法表

<?phpfor ($i = 1; $i <= 9; $i++) {for ($j = 1; $j <= $i; $j++) {echo $j.' * '.$i.' = '.$i*$j.'&nbsp;&nbsp;';}echo '<br>';}?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94335.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程常用工具类(下):CyclicBarrier 与 Phaser 的协同应用

在并发编程中&#xff0c;除了CountDownLatch和Semaphore&#xff0c;CyclicBarrier和Phaser也是实现多线程协作的重要工具。它们在处理多阶段任务同步、动态调整参与线程等场景中展现出独特价值。本文作为并发工具类系列的第二篇&#xff0c;将深入解析CyclicBarrier和Phaser的…

机器人焊接节气装置

在摩托车制造过程中&#xff0c;精密部件的焊接质量直接影响整车的安全性和操控性能。以发动机缸体焊接为例&#xff0c;传统手工焊接容易出现焊缝不均匀的问题&#xff0c;而采用六轴弧焊机器人后&#xff0c;焊接精度能控制在0.1毫米以内。日本川崎重工的生产数据显示&#x…

使用yolo11训练食物浪费检测数据集VOC+YOLO格式6734张32类别步骤和流程

【数据集介绍】数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;6734标注数量(xml文件个数)&#xff1a;6734标注数量(txt文件个数)&#xff1…

掌握PowerPC架构与编程技巧:技术资料详解

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;PowerPC是一种高性能的RISC架构&#xff0c;最初由IBM、Motorola和Apple联合开发&#xff0c;被设计用于高端工作站和服务器&#xff0c;同时广泛应用于嵌入式系统、航空电子设备、游戏主机和超级计算机等领域。…

VR 企业展厅:开启数字化展示新时代

在当今数字化浪潮席卷各行各业的时代&#xff0c;企业的展示与宣传方式也在不断革新。VR&#xff08;虚拟现实&#xff09;技术的出现&#xff0c;为企业展厅带来了全新的变革&#xff0c;使其从传统的实体展示空间&#xff0c;转变为具有无限可能的数字化虚拟空间。一、VR 企业…

测试用例颗粒度全解析

引言&#xff1a;为什么颗粒度是测试团队的“隐形门槛”&#xff1f;在软件测试领域&#xff0c;测试用例颗粒度&#xff08;即测试用例的详细程度&#xff09;看似是一个基础问题&#xff0c;却常常成为团队协作的“隐形门槛”。某电商平台测试团队曾出现过这样的窘境&#xf…

分布式锁的基本原理和基于lua脚本的实现(Redisson)

为了确保分布式锁可用&#xff0c;我们要确保锁的实现同时满足以下四个条件&#xff1a;- 互斥性。在任意时刻&#xff0c;只有一个客户端能持有锁。- 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁&#xff0c;也能保证后续其他客户端能加锁。- 解铃还须系…

智慧园区数字孪生全生命周期交付体系:从虚拟建模到全域智联的快速交付新常态

在数字经济与绿色低碳转型的双重驱动下&#xff0c;智慧园区建设正经历从“物理空间堆砌”到“数据智能驱动”的范式革命。数字孪生技术作为核心引擎&#xff0c;通过构建物理园区的虚拟镜像&#xff0c;实现虚实空间的毫秒级同步与智能协同&#xff0c;推动园区管理向全要素感…

电脑忘记开机密码怎么办?【图文详解】5种方法重置/更改/取消/设置开机密码?

一、问题背景谁都有马虎的时候&#xff0c;要是突然忘了电脑开机密码&#xff0c;就只能对着登录界面干着急&#xff0c;没法打开电脑处理工作、查看文件&#xff0c;太影响效率了。别慌&#xff0c;其实有不少简单实用的办法能解除或重置密码&#xff0c;下面就来一一介绍&…

Go语言select

select是什么select是Go语言层面提供的一种多路复用机制&#xff0c;用于检测当前goroutine连接的多个channel是否有数据准备完毕&#xff0c;可用于读或写。Go语言的select语句&#xff0c;是用来起一个goroutine监听多个Channel的读写事件&#xff0c;提高从多个Channel获取信…

VUE+SPRINGBOOT从0-1打造前后端-前后台系统-整体示例

一、注册、登录、密码找回二、VUE前台系统三、VUE后台系统

深入解析SmolVLA:VLM与动作专家间的注意力机制交互

在机器人学习领域&#xff0c;如何有效地将视觉语言模型&#xff08;VLM&#xff09;的强大感知能力与低级动作控制相结合&#xff0c;是实现通用机器人智能的关键挑战。SmolVLA&#xff08;Small Vision-Language-Action&#xff09;架构正是在这一背景下应运而生&#xff0c;…

Spring Security 认证与授权实现机制

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架&#xff0c;其认证和授权实现机制如下&#xff1a;一、认证(Authentication)实现 1. 核心组件 AuthenticationManager&#xff1a;认证入口点&#xff0c;委托给AuthenticationProviderAuthenticationProv…

开源的时间跟踪工具TimeTagger

简介 什么是 TimeTagger &#xff1f; TimeTagger 是一个开源的时间跟踪工具&#xff0c;旨在帮助用户记录和分析他们的时间使用情况。它提供了一个互动的用户界面和强大的报告功能&#xff0c;适合个人和自由职业者使用。 主要特点 直观的用户界面&#xff1a;基于互动时间线…

学习游戏制作记录(角色属性和状态脚本)8.4

1.实现简单的角色属性创建CharactorState脚本&#xff1a;挂载在敌人和玩家身上public float damage;//角色伤害public float maxHp;//最大生命[SerializeField] private float currentHealth;//当前生命void Start(){currentHealth maxHp;//初始化将当前生命设置为最大生命}p…

04-Chapter02-Example01

文章介绍 1、完善项目结构 1.1 新建第二章对应模块Chapter021.2 新建模块Chapter02对应包com.itheima1.3 在包com.itheima下新建class类 &#xff0c;类名称Example01.java项目结构如下&#xff1a;2、编写Example01.java代码 P38 package com.itheima;public class Example01…

【达梦MPP(带主备)集群搭建】

达梦MPP&#xff08;带主备&#xff09;集群搭建 为了提高MPP系统可靠性&#xff0c;克服由于单节点故障导致整个系统不能继续正常工作的问题&#xff0c;DM在普通的MPP系统基础上&#xff0c;引入数据守护主备机制&#xff0c;为每一个MPP节点配置一个实时备库作为备份节点&a…

Java基础学习(一):类名规范、返回值、注释、数据类型

目录 一、类名规范二、返回值三、注释四、数据类型 1. 基本类型2. 引用类型3. 强制数据类型转换4. 进制5. 进制的转换6. 超范围运算 相关文章 Java基础学习&#xff08;二&#xff09;&#xff1a;Java中的变量和常量、final&#xff08;重点&#xff09;、运算、字符串 了…

Nginx相关实验(2)

nginx的一些高级配置 nginx状态页 基于nginx 模块 ngx_http_stub_status_module 实现&#xff0c; 在编译安装nginx的时候需要添加编译参数 --with-http_stub_status_module 否则配置完成之后监测会是提示语法错误 #检查模块是否配置 如果不存在需要添加模块重新编译 nginx …

2.Java和C++有什么区别

2.Java和C有什么区别 1.在C中&#xff0c;支持操作符重载&#xff0c;而在Java里是不允许的 2.C支持多继承&#xff0c;而Java不可以&#xff0c;但Java可以单继承多实现 3.Java内置多线程机制&#xff0c;而C没有 4.Java里面自带了垃圾回收机制&#xff0c;可以自动清理缓存等…