当前位置: 首页 > news >正文

【PHP入门】2.2 流程控制

-流程控制-

流程控制:代码执行的方向

2.2.1控制分类

顺序结构:代码从上往下,顺序执行。(代码执行的最基本结构)

分支结构:给定一个条件,同时有多种可执行代码(块),然后会根据条件执行某一段代码

循环结构:在某个条件控制范围内,指定的代码(块)可以重复执行

*顺序结构

顺序结构:最基本结构,所有代码默认都是从上往下依次执行

分支结构

在PHP中,分支结构主要有两种:if分支和switch分支

2.2.2 IF分支

If:如果的意思,给定一个条件,同时为该条件设置多种(两种)情况,然后通过条件判断来实现具体的执行段

基本语法:if分支PHP也提供多种方式来实现

//最简if:只有一段代码,但是可以选择是否执行
If('条件表达式'){//满足条件所要执行的内容; //顺序结构
}

2.2-1

//基础if:有两面性,满足条件或者不满足条件都有对应的执行代码
If('条件表达式'){
//满足条件后执行的代码段;
}else{
//不满足条件执行的代码段;
}

2.2-2

//复杂if结构:在判断条件之后,通常就有两种结果:满足或者不满足,在不满足之后还可以再次进行条件判断If('条件表达式1'){
//满足条件表达式1的代码段;
}elseif('条件表达式2'){
//不满足表达式1条件,但是满足表达式2的代码;
}//可以使用多个elseif来进行再次条件筛选
Else{
//全部不满足要执行的代码;
}

2.2-3

注意:如果条件特别多才会采用复合if形式

1、 如果条件比较单一(同一个条件),会采用elseif复合方式

2、 如果判断条件不一致,建议使用嵌套语法(不宜有太多层嵌套:影响代码美观)

If分支,适用于所有的条件判断(分支结构)

2.2.3 Switch分支

Switch分支:有一组情形存在,同过一条件,通常有多个值,但是每一个值都会有对应不同的代码要执行。

Switch判断方式:是将条件放到分支结构内部判断

//Switch基本语法:
Switch(条件表达式){     //所有条件判断:逐个进行Case1: //当前条件表达式的结果与值1相等(==)'要执行的代码段;'Break;    //在switch中,如果条件匹配成功,那么系统就不会再次匹配条件,会自动顺序执行向下的所有代码(case代码除外),需要中断执行:break表示中断switch(结束)。Case2:'要执行的代码段;'Break;
//可以使用类似else的语法:都不匹配
Default:
//匹配失败的代码;
Break;
}

2.3-4

If和switch的选择

1、 if能做所有的分支结构事情

2、 switch处理的是条件比较多,同时比较单一,而且是固定值匹配的分支结构

循环结构

循环结构:代码段在一定的控制下,可以多次执行

PHP中循环结构有以下几种:
For循环:通过条件、起始和终止判断执行
While循环:通过判断条件终止
Do-while循环:跟while差不多
Foreach循环:专门针对数组

2.2.4 For循环

For循环基本语法

For('条件表达式1';'条件表达式2';'条件表达式3'){
//条件表达式1:定义初始化条件,可以有多种赋值语句存在,使用逗号分隔即可
//条件表达式2:边界判定,限定循环执行的次数
//条件表达式3:用来执行条件变化(自操作)
//循环体
}

2.3-5

For循环执行原理:

1、 执行条件表达式1:定义初始化条件(执行一次)
2、 执行条件表达式2:判断条件(N次)2.1  满足条件:执行循环体2.2  不满足条件:循环结束
3、 执行循环体:(N次)
4、 执行条件表达式3:循环变量变化(N次)
5、 执行条件表达式2:判断条件(N次)
6、 重复执行3-4-2步骤:直到第2步不满足条件结束循环

For循环中条件表达式1的多变量定义

2.2-6

//For循环特殊使用:for循环中对应的括号(条件)可以一个都没有(死循环):一定要避免出现
For(;;){//循环体
}

2.2-7

2.2.5 While循环

while循环基本语法:

//条件初始化;
while(条件表达式){
//条件表达式就是判断边界条件循环体; 
//循环条件的变化
}

2.2-8

For与while的选择

1、 如果是基于固定已知条件(数值而且是有规律的变化),使用for循环

2、 while可以做灵活的条件判定(while使用的比较多)

2.2.6 do-while循环

do-while:看着很像while,while首先进行条件判定然后执行循环体,有可能出现第一次就条件不满足,那么就会直接失败(循环体一次都不执行)。Do-while就是先干了再说(执行循环体),后判断条件。(至少会执行一次循环体)

//do-while基本语法:
do{
//循环体
}while(条件表达式);

2.2-9

2.2.7 循环控制

循环控制:在循环内部对循环本身进行控制

中断控制:重新开始循环,循环体中还有其他内容,也再执行

Continue 层级;    //默认是1(循环可以多层嵌套)

2.2-10

终止控制:循环直接结束

Break 层级;       //默认是1

2.2-11

因为循环经常性会碰到嵌套(循环中间包含循环),如果在循环内部有些条件下,明确可以知道当前循环(或者说外部循环)不需要继续执行了,那么就是可以使用循环控制来实现:其中内部循环也可以控制到外部,就是通过使用层级参数。

Continue 2;   //当前自己循环后面内容不再执行,同时外部循环如果还有循环体也不再执行,重新来过;
Break 2;      //当前自己循环结束,同时外部也结束(如果还有外部不受影响,继续执行)

2.2.8流程控制替代语法

流程控制替代语法:分支和循环结构的替代语法

PHP本身是嵌入到HTML中的脚本语言,需要在HTML中书写一些关于判断或者循环的结构语法,必须符合PHP标签规范,需要HTML与PHP进行混搭,如果使用原始的PHP代码那么会非常不美观。

需求:打印一个九九乘法表,使用表格来展示

2.2-12

在PHP书写到HTML中的这些大括号{}非常不美观,所以PHP提供了一种替代机制,让其可以不用书写大括号:

2.2-13

PHP中具体有哪些替代语法呢?PHP应该在HTML中只做数据输出,输出通常伴有条件判断和循环操作,因此PHP提供了对应分支结构和循环结构的替代语法:全部都是对应的一个模式:

//左大括号{使用冒号替代:
//右大括号}使用end+对应的起始标记替代
Ifif():  endif;
Switchswitch():  endswitch;
For
While
foreach

相关文章:

【PHP入门】2.2 流程控制

-流程控制- 流程控制:代码执行的方向 2.2.1控制分类 顺序结构:代码从上往下,顺序执行。(代码执行的最基本结构) 分支结构:给定一个条件,同时有多种可执行代码(块)&am…...

springCould中的zookeeper-从小白开始【3】

目录 1.启动zookeeper❤️❤️❤️ 2.创建8004模块 ❤️❤️❤️ 3.临时节点还是永久节点❤️❤️❤️ 4.创建zk80消费模块❤️❤️❤️ 1.启动zookeeper❤️❤️❤️ 进入自己zookeeper的bin目录下 分别使用命令: ./zkServer.sh start 和 ./zkCli.sh -serve…...

Node.js-模块化(二)

1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时,自顶向下逐层将系统拆分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。 1.2 编程领域中的模块化 编程领域中的模块化,就是遵守固定的规则&…...

MAC 安装nginx

使用Homebrew方式进行安装 步骤: 1、更新 Homebrew brew update 2、下载并安装 Nginx brew install nginx 3、查看 nginx 配置信息 brew info nginx zhanghuaBreeze ~ % brew info nginx // 版本信息 > nginx: stable 1.25.1 (bottled), HEAD HTTP(S) se…...

开源 AI 新秀崛起:Bittensor 更像是真正的“OpenAI”

强大的人工智能正在飞速发展,而完全由 OpenAI、Midjourney、Google(Bard)这样的少数公司控制 AI 不免让人感到担忧。在这样的背景下,试图用创新性解决方案处理人工智能中心化问题、权力集中于少数公司的 Bittensor,可谓…...

设计模式:循序渐进走入工厂模式

文章目录 前言一、引入二、简单工厂模式1.实现2.优缺点3.扩展 三、工厂方法模式1.实现2.优缺点 四、抽象工厂模式1.实现2.优缺点3.使用场景 五、模式扩展六、JDK源码解析总结 前言 软件设计模式之工厂模式。 一、引入 需求:设计一个咖啡店点餐系统。 设计一个咖啡类…...

如何将图片(matlab、python)无损放入word论文

许多论文对插图有要求,直接插入png、jpg一般是不行的,这是一篇顶刊文章(pdf)的插图,放大2400%后依旧清晰,搜罗了网上的方法,总结了一下如何将图片无损放入论文中。 这里主要讨论的是数据生成的图…...

在Next.js和React中搭建Cesium项目

在Next.js和React中搭建Cesium项目,需要确保Cesium能够与服务端渲染(SSR)兼容,因为Next.js默认是SSR的。Cesium是一个基于WebGL的地理信息可视化库,通常用于在网页中展示三维地球或地图。下面是一个基本的步骤,用于在Next.js项目中…...

docker学习(十、搭建redis集群,三主三从)

文章目录 一、docker创建6个redis容器创建6个redis容器回顾各个属性含义 二、划分主从,3主3从划分主从查看状态查看节点信息 docker搭建Redis集群相关知识: docker学习(九、分布式存储亿级数据知识) docker学习(十、搭…...

ES排错命令

GET _cat/indices?v&healthred GET _cat/indices?v&healthyellow GET _cat/indices?v&healthgreen确定哪些索引有问题,多少索引有问题。_cat API 可以通过返回结果告诉我们这一点 查看有问题的分片以及原因。 这与索引列表有关,但是索引…...

爬虫实战案例 -- 爬取豆瓣读书网页内容

进入网站检查信息 , 确定请求方式以及相关数据 找到爬取目标位置 开始敲代码 # 链接网站 def url_link(url):res requests.get(url,headers headers)response res.textparse_data(response)# 爬取信息 def parse_data(data):msg <li\sclass"media\sclearfix…...

某电子文档安全管理系统 SQL注入漏洞复现

漏洞介绍 亿赛通电子文档安全管理系统 (简称: CDG)是一款电子文档安全加密软件&#xff0c;该系统利用驱动层透明加密技术&#xff0c;通过对电子文档的加密保护&#xff0c;防止内部员工泄密和外部人员非法窃取企业核心重要数据资产&#xff0c;对电子文档进行全生命周期防护…...

ant-design-vue Message 用法以及内容为 html片段情况

全局配置&#xff1a; // main.ts// 进行全局配置 message.config({top: 0.7rem,//高度位置duration: 2,//提示持续时间maxCount: 1,//最大页面同时展示几条 });项目中最常用的用法&#xff1a; 1. 字符串 message.success("导入成功");2. html片段 message.error…...

2024 Move 开发者大会火热报名中!1 月 13 至 14 日上海见

2024 Move 开发者大会将于 1 月 13 日至 1 月 14 日在上海举办。本届 Move 开发者大会以 “Move 生态关键的一年” 为主题&#xff0c;由 MoveFuns 、OpenBuild 和 MoveBit 主办&#xff0c;Rooch、AptosGlobal、alcove、zkMove、云赛空间和 TinTinLand 协办&#xff0c;并得到…...

hbase用shell命令新建表报错ERROR: KeeperErrorCode = NoNode for /hbase/master

或者HMster开启后几秒消失问题解决 报错如图&#xff1a; 首先jps命令查看当前运行的内容有没有HMaster,如果没有&#xff0c;开启一下hbase,稍微等一会儿&#xff0c;再看一下HMaster,如果仍和下图一样没有&#xff0c;就基本找到问题了 本人问题原因&#xff1a;hbase-site…...

PyQt中的冒号(:)

在这段代码中&#xff0c;冒号&#xff08;:&#xff09;的使用是类型注解的一种形式&#xff0c;用于显式地指定变量的类型。在Python 3.5及以后的版本中&#xff0c;引入了类型注解的概念&#xff0c;可以在变量名后面使用冒号来注解变量的类型。 例如&#xff0c;在以下代码…...

yolo-nas无人机高空红外热数据小目标检测(教程+代码)

前言 YOLO-NAS是目前最新的YOLO目标检测模型。从一开始&#xff0c;它就在准确性方面击败了所有其他 YOLO 模型。与之前的 YOLO 模型相比&#xff0c;预训练的 YOLO-NAS 模型能够以更高的准确度检测更多目标。但是我们如何在自定义数据集上训练 YOLO NAS&#xff1f; 这将是我…...

Ubuntu22.04安装python2

Ubuntu 20.04是继Ubuntu 18.04 LTS之后的下一个长期支持(LTS)版本&#xff0c;从Ubuntu 20.04开始系统不再预装python2。 如果我们有一些老旧的代码需要运行&#xff0c;可以在新版的Ubuntu系统上自行安装python2。 安装命令&#xff1a; sudo apt install python2查看pytho…...

【Amazon 实验①】Amazon WAF功能增强之实验环境准备

文章目录 1. 实验介绍2. 实验环境准备 1. 实验介绍 在真实的网络空间中&#xff0c;攻击者会使用大量广泛分布的僵尸网络、肉机等发起对目标的攻击。 其来源分布一般比较分散&#xff0c;因此难以简单防范。 本实验联合使用有多种AWS服务&#xff1a;Cloudfront、 Lambdaedge…...

Qt不能在线程函数操作UI

Qt的官方文档虽然并没有明确说明&#xff0c;不能在子线程中操作UI&#xff0c;但是&#xff0c;因为Qt是事件循环机制&#xff0c;所有的UI事件都是在主线程中处理的&#xff0c;如果在子线程中直接操作UI&#xff0c;就会存在线程安全问题&#xff0c;严重时候会使程序挂掉。…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...