版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二单元
程序流程控制课程内容01分支结构02循环结构目录
导入项目概述从编程的角度来说,流程控制指的是控制代码的执行流程。PHP作为一种脚本语言,其代码都是按照自上而下逐行执行的流程来控制的,这种结构就是基础的顺序结构。在程序的开发过程中,单纯依赖顺序结构往往无法满足所有的功能需求,因此分支结构和循环结构是PHP语言中不可或缺的组成部分。在本单元中,我们学习PHP语言中的分支结构语句,并用它们来实现一个判定年份生肖的案例;随后我们将学习PHP语言中的各种循环结构语句,并用它们来解决一个判定质数的问题。
思维导图任务描述一般人对自己出生年份的生肖属相往往比较熟悉,但当面对一个陌生的年份时,一般人往往无法第一时间回答出该年份对应的生肖属相。借助本节学习的流程控制语句,我们可以编写一段简单的PHP程序来快速判断任何年份的生肖属相。任务2.1判断不同年份的生肖属相1.1if语句1.简单分支结构单分支if语句属于分支结构中最为基础的语句。它会对给出的判定条件做出一次判断,若判定通过则会执行相应代码段,若判定不通过则直接结束。
下面是一段使用if语句的代码范例:if($x>$y){echo“$xislarger”;}
在上述代码中,程序首先会对小括号中$x>$y这个条件进行判定。当判定为true时,程序会执行花括号中的输出语句;当判定为false时,程序则不会执行任何代码。1.2if…else语句1.简单分支结构if…else语句是双分支语句。它在对给出的判定条件做出判断后,会根据判定的通过与否执行不同的代码段。
下面是一段使用if…else语句的代码范例:if($x>$y){echo“$xislarger”;}else{echo“$xisnotlarger”;}
在上述代码中,程序依旧对$x>$y这个条件进行了判定。当判定为true时,程序依然会执行第一组花括号中的输出语句;当判定为false时,程序会转而执行关键字else之后的第二组花括号中的输出语句。1.3if…elseif语句1.简单分支结构if…elseif语句在if…else语句的基础上增加了继续展开的更多分支结构,属于多分支语句。要注意的是,if…elseif分支语句的展开只能沿着判定不通过的方向单向展开。if($x>$y){echo“$xislarger”;}elseif($x<$y){echo“$yislarger”;}在这段代码中,程序还是先对$x>$y这个条件进行了判定。当判定为true时,程序依然会执行第一组花括号中的输出语句;当判定为false时,程序对elseif之后的第二个条件$x<$y进行判定。当第二次判定为true时,程序会执行第二组花括号中的输出语句。需要注意的是,在第二次判定的elseif语句后可以根据需要继续添加else或elseif语句来进一步展开更多层的分支结构。2.嵌套分支语句我们可以在简单分支结构的执行代码段中继续嵌入新的分支结构,这种分支结构就是嵌套分支语句。与if…elseif语句不同的是,我们可以通过嵌套分支语句沿着true和false的方向同时展开。if($x>$y){//括号中的内容是第一层分支结构的判定条件if($x>$z){//本行是第一层分支结构沿着true的方向展开的echo“$xisthelargest”;//本行是第一层和第二层判定都为true的执行内容}}3.switch语句switch语句也属于多分支语句。当程序所需的分支结构存在大量同级分支的时候,使用switch语句来编写的代码会比使用if…elseif语句的更加简洁易读。switch($x%2){case0:
echo“$xiseven”;break;case1:echo“$xisodd”;
break;default:echo“somethingwrong”;}这段代码通过switch语句实现了判定$x是奇数还是偶数的功能。首先,这个例子中的判定$x%2的余数。随后的两个case分别处理了余数为0和余数为1这两种情况,并做出了相应的输出。最后的default语句确保了在其他的任何异常情况下,比如$x为浮点数或其他非整型数据类型,程序依然可以正常地做出相应反馈。任务实施<?php$year=2025;//首先通过赋值语句输入检测年份if($year<=0){//判断输入年份是否为负值
echo“请输入一个合理的年份”;//若判定通过则输出错误提示}else{
//此处仅示范一个验证,可按需添加其他验证switch($year%12){//对输入年份除以12所得的余数进行判定
case0://所有能被12整除的年份都是猴年
echo$year.“年是猴年”;//做出相应的文本输出
break;//break语句可以跳出当前流程控制结构,结束执行
case1://所有年份除以12余1的年份都是鸡年,以此类推
echo$year.“年是鸡年”;break;
…case11:echo$year.“年是羊年”;break;default://最后的default用来处理所有异常情况echo“出错了”;//输出报错文本}}?>任务描述质数是指在大于1的自然数中只能被1和它自己整除的数。对于比较小的质数,我们常常可以通过心算快速得出结论,如2、3、5、7、11、13等。但当我们遇到一个较大的自然数时,如3181,我们往往就无法快速得出它是否为质数的结论了。通过学习本小节的循环语句,我们将能够编写一个快速判断某个数是否为质数的PHP程序。任务2.2判断某数是否为质数1.1while循环1.循环结构while循环会先对循环条件进行判定,在判定通过的情况下执行循环体中的代码,也就是所谓的“先判定,后循环”。
下面是一段使用while循环语句的代码范例:$x=9;
while($x>0){
echo$x;
$x=$x–1;}在上述代码中,$x的初始值为9,循环的判定条件为$x大于0。在每一轮循环条件满足的情况下将执行两个操作:1.输出当前$x的值;2.将当前$x的值进行递减。1.2do…while循环1.循环结构do…while循环会先执行一次循环体中的代码,并在执行结束后对循环条件进行判定,也就是所谓的“先循环,后判定”。下面是一段使用do…while循环语句的代码范例:$x=9;
do{
echo$x;
$x=$x–1;}while($x>0);
do…while循环的机制与while循环基本类似,唯一的不同之处在于执行循环体和判定循环条件的先后顺序上。因为do…while循环对于循环条件的首次判定发生在第一次循环体执行完成之后,所以do…while循环的循环体至少会被执行1次。1.3for循环1.循环结构在程序所需的循环次数已经确定的情况下,for循环通常是一个合理的选择。
下面是一段使用for循环语句的代码范例:for($x=9;$x>0;$x--){
echo$x;}与while循环和do-while循环不同的是,for循环在定义的过程中就会对循环的次数做出限定,其具体语法为:(变量初始值;循环判定条件;变量递增递减规则)。1.4foreach循环1.循环结构foreach循环通常被用来遍历数组中的所有元素。
下面是一段使用foreach循环语句的代码范例:$drinks=[‘coffee’,‘tea’]foreach($drinksas$key=>$value){echo$key.$value.‘’}上述代码通过foreach循环将数组$drinks中的元素逐个输出了出来,其中foreach语句定义的具体语法为:(数组名as元素键=>元素值);注意在这个定义的过程中,元素的键和值可以用自定义的变量名来表示,并不一定需要使用例子中的$key和$value。上述代码最终的输出内容为:0coffee1tea2.嵌套循环我们在一个循环语句的循环体中可以嵌入一个新的循环语句。在这种情况下,只有内部的循环语句完全执行完毕后,外部的循环体才会进入下一次循环。for($x=9;$x>=0;$x--){
for($y=9;$y>=0;$y--){
echo$x.$y.‘’;}echo‘<br>’;}上述代码展示了一段可以将99到00的所有两位数组合输出在一个10*10的矩形中的程序,其中变量$x被用来循环十位,变量$y被用来循环个位。其输出的结果如右图所示:3.1break语句3.跳转语句break语句会终止当前的整个循环,将程序的执行直接跳转到循环语句后的代码。在之前学习switch语句的时候,break会作为每个case触发后的跳出机制被使用。但同时需要注意的是,break语句的使用不只局限于switch语句的多分支结构,在各种流程控制语句中都能进行使用。$sum=0;for($x=1;$x<=100;$x++){if($x%2==1){continue;}$sum=$sum+$x;}echo$sum;
continue语句会中止当前的单次循环,但依然会继续进行下一轮的条件判定与循环执行。程序的执行依然会保持在当前的循环语句中。左边的代码展示了一段对100以内的偶数求和的程序。该程序用一个for循环遍历了1到100之间的所有自然数,并利用continue语句在循环到奇数时跳出本轮循环,使其仅在循环到偶数时将当前数值与求和变量相加。3.2continue语句任务实施<?php$num=3181;//将待检验的数字赋值if($num<=1){//处理特殊情况:检查是否小于1$isPrime=false;//小于1则不是质数}elseif($num==2){//检查是否等于2$isPrime=true;
//等于2则是质数}elseif($num%2==0){//检查是不是2以外的偶数
$isPrime=false;//2以外的偶数都不是质数}else{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 11.1 探问人生目标 课件(共21张)+内嵌视频统编版《道德与法治》七年级上册
- 全国交通安全日中小学交通安全教育课件
- 江苏省苏州市昆山市蓬朗高级中学2025-2026学年高二(下)第二次模块检测数学试卷(含答案)
- 2026年物理简谐运动测试题及答案
- 2026年教育能力测试题库及答案
- 2026年东方插花测试题及答案
- 循环系统试题及答案
- 2026年平安租赁测试题目及答案
- 2026年生活常识心理测试题及答案
- 2026年tqm培训测试题及答案
- 拇外翻诊疗指南
- 苏教版科学二年级上册教学工作计划
- 新版2026秋新教材人教版小学美术五年级上册(全册)教学设计(附目录p79)
- 牧场安全管理培训课件
- 感恩教育感恩父母主题班会课件
- 2026中国智能座舱多模态交互方案用户体验评价标准建立
- 《金属非金属矿山通风技术要求》
- 2023-2025年中考语文试卷(现代文阅读题)汇集练1附答案解析
- 妊娠期尿路感染治疗指南2026
- 公路工程技术标准(2025版)
- 2026高考化学命题趋势分析与预测
评论
0/150
提交评论