学习要点

  • 选择结构
  • 循环结构

学习目标

  • 掌握PHP的选择结构
  • 掌握PHP的循环结构

流程控制概述

程序

程序:一系列计算机指令的集合。

编程语言:开发程序的工具。

程序执行结构

计算机程序有三种基本执行结构:顺序执行结构、分支执行结构、循环执行结构

   

分支结构

分支结构,也称为选择结构,条件结构。

单一条件分支结构(if)

if(表达式){

   //PHP代码;

}

  

当表达式成立的时候执行PHP代码。否则,不执行大括号中的PHP代码。

表达式通常由比较运算符或者逻辑运算符组成,或者是一些返回布尔类型的函数。

问题1:如何交换两个数?编码实现。

问题2:复杂条件的构建——张三php成绩大于98分,而且音乐成绩大于80分,老师奖励他;或者php成绩等于100分,音乐成绩大于70分,老师也可以奖励他。编码实现。

双向条件分支结构(else子句)

if(表达式){

   //PHP代码1;

}else{

   //PHP代码2;

}

当表达式成立的时候执行PHP代码1。否则,执行PHP代码2。

注意:else不能单独使用,必须和if配对使用。

示例:比较两个数的大小

<?php

$a=10;

$b=20;

if($a>$b){

echo "变量\$a大于变量\$b";

}else{

echo "变量\$a小于变量\$b";

}

?>

  

上机练习1 买彩票问题

买彩票

如果体彩中了500万,我买车、资助希望工程、去欧洲旅游

如果没中,我买下一期体彩,继续烧高香

多向条件分支结构(elseif子句)

If(表达式1){

    //php语句块1

}elseif(表达式2){

    //php语句块2

} elseif(表达式3){

    //php语句块3

}else{

    //php语句块4

}

  

上机练习2  买车的问题

我想买车,买什么车决定于我在银行有多少存款

如果我的存款超过500万,我就买凯迪拉克

否则,如果我的存款超过100万,我就买帕萨特

否则, 如果我的存款超过50万,我就买依兰特

否则, 如果我的存款超过10万,我就买奥托

否则, 如果我的存款10万以下 ,我买捷安特

嵌套条件分支结构

示例:嵌套条件分支结构

问题:

学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组

分析:

判断是否能够进入决赛

在确定进入决赛的情况下,判断是进入男子组,还是进入女子组

多向条件分支结构(switch语句)

问题:小明参加计算机编程大赛

如果获得第一名,将参加麻省理工大学组织的1个月夏令营

如果获得第二名,将奖励惠普笔记本电脑一部

如果获得第三名,将奖励移动硬盘一个

否则,不给任何奖励

解决方法:

  • 使用多重if选择结构实现(缺点:结构复杂,啰嗦)
       $mingCi = 3;    //名次

        if ($mingCi == 1) {

            echo  ("参加麻省理工大学计算机学院组织1个月夏令营");

        } elseif ($mingCi == 2) {

            echo  ("奖励hp笔记本一部");

        } elseif ($mingCi == 3) {

            echo  ("奖励移动硬盘一部");

        } else {

            echo  ("没有任何奖励");

        }

 

  • 使用switch选择结构解决(特点:条件为等值判断)
  $mingCi = 1;  //名次

   switch ($mingCi){

        case 1:

            echo ("参观麻省理工大学计算机学院组织1个月夏令营");

            break;

        case 2:

            echo ("奖励hp笔记本一部");

            break;

        case 3:

            echo ("奖励移动硬盘一部");

            break;

        default:

            echo ("没有任何奖励");

        }

  

循环结构

PHP提供了两种类型的循环语句:

  • 一种是计数循环语句,通常使用for循环语句完成。
  • 另一种是条件循环语句,通常使用while或do-while循环语句完成。

循环的特点:

while语句

     

特点:先判断,再执行

示例 打印50份试卷

  • 分析问题

    分析是否包含重复操作

  • 解决问题

    使用while循环的步骤

    

  • 画出流程图

    

  • 写出实现代码

上机练习3  计算学员人数

2017年培养学员6800人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到10万人?

提示:
1、循环条件和循环操作分别是什么?

2、2018年培训学员数量 = 6800 * (1 + 0.25 )

3、$year =
2017;

$students = 6800;

while …

do……while循环

如何用程序讲述下面的故事?

经过几天的学习,老师给艾边城一道测试题,

让他先上机编写程序完成,

然后老师检查是否合格。如果不合格,则继续编写。……

特点:先执行,再判断

上机练习4 温度转换

使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。

转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32

提示:
1、循环操作:计算华氏温度,并输出对照条目

2、循环条件:条目<=10
&& 摄氏温度 <= 250

for语句

  • 问题:输出100次“好好学习!”

  • for循环的执行顺序

演示示例:输出加法表

0 + 6 = 6
1 + 5 = 6
2 + 4 = 6
3 + 3 = 6
4 + 2 = 6
5 + 1 = 6
6 + 0 = 6

使用for循环:

1、循环初始化:$i = 0;$j = 设定值

2、循环条件:$i<=设定值

3、循环操作:计算$i+$j

4、循环变量的改变:$i++,$j—

代码:

$val=6;

for($i = 0, $j = $val; $i <= $val; $i ++, $j --) {

   echo $i." + ".$j." = ".($i+$j)."<br>";

}

  

上机练习5 输出九九乘法表

上机练习6 输出等腰三角形

上机练习7 输出菱形

break语句

  • 问题:

    1~10之间的整数相加,得到累加值大于20的当前数

  • 分析:

    1、使用循环进行累加,从1到10

    2、判断累加值是否大于20

    3、如果大于20,则跳出循环,并打印当前值

continue语句

continue :只能用在循环里

continue 作用:跳过循环体中剩余的语句而执行下一次循环

  • 问题:

    求整数1-100的累加值,但要求跳过所有个位数为3的数。

  • 分析:

1、使用循环进行累加,从1到100

2、判断个位数是3的数

3、跳过本次循环

exit语句

直接退出当前脚本

exit;

exit();

die();//exit()的别名

exit("exit");

die("退出脚本1");

exit("退出脚本2");

  

goto语句

跳转语句,一般用在多重循环跳出,出错时候清除资源等。

示例:程序跳转

goto a;

exit;

exit("exit");

die("退出脚本1");

a:

exit("退出脚本2");

  

示例:goto循环

$i = 1;

st://目标位置:目标名+“:”

echo "第{$i}次循环<br>";

if ($i ++ == 10)

   goto end;

goto st;

end: //目标位置:目标名+“:”

echo "语句结束。";

  

PHP06 流程控制的更多相关文章

  1. 第10章 Shell编程(4)_流程控制

    5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...

  2. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

  3. PHP基础知识之流程控制的替代语法

    PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...

  4. Python黑帽编程2.4 流程控制

    Python黑帽编程2.4  流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容. 2.4.1 if …..else 先上一段代码: #!/usr/bin/python # - ...

  5. 使用yield进行异步流程控制

    现状 目前我们对异步回调的解决方案有这么几种:回调,deferred/promise和事件触发.回调的方式自不必说,需要硬编码调用,而且有可能会出现复杂的嵌套关系,造成"回调黑洞" ...

  6. [Java入门笔记] Java语言基础(四):流程控制

    流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下几种: 顺序结构 顺序结构,顾名思义,是指程序从上往下逐步顺序执行.中间没有任何的判断和跳转. 分支结构 Java提供两种分支结构: ...

  7. node基础13:异步流程控制

    1.流程控制 因为在node中大部分的api都是异步的,比如说读取文件,如果采用回调函数的形式,很容易造成地狱回调,代码非常不容易进行维护. 因此,为了解决这个问题,有大神写了async这个中间件.极 ...

  8. Shell入门教程:流程控制(1)命令的结束状态

    在Bash Shell中,流程控制命令有2大类:“条件”.“循环”.属于“条件”的有:if.case:属于“循环”的有:for.while.until:命令 select 既属于“条件”,也属于“循环 ...

  9. Oracle中PL/SQL的执行部分和各种流程控制

    Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...

随机推荐

  1. pymssql读取varchar字段中文显示乱码的问题分析

    问题 用python的pymssql模块读取旧业务系统后台SQL Server 2000数据库展示数据为乱码 开发环境 操作系统:windows 8 数据库 MS SQL Server 2000,默认 ...

  2. finalize方法的作用

            finalize是在对象回收前做一些清扫工作,以及可清理栈上的内存,比如调用本地方法可能在栈上创建对象.即使对象不可达,也并不是非死不可,还是可以抢救一下,当一个对象没有与GCroot ...

  3. mql4入门(1)

    博主比较忙,因此也就抽空写写.等最后全部写完了再汇总一下.     说到金融,我想肯定有很多人印象里就是一个不太大的大厅,一群交易员望着一堆背景为黑的曲线图的场景. 比如这样     但是试想一下,交 ...

  4. 洛谷 - P1044 - 栈 - 简单dp

    https://www.luogu.org/problemnew/show/P1044 由于是用标签搜索进来的,所以这道题一定是有dp的解法. 很显然规定每次加入元素之前可以从栈中清理出任意数量的元素 ...

  5. poj 2492 A Bug's Life【带权并查集】

    就是给一个无向图判是否有奇环 用带权并查集来做,边权1表示连接的两个节点异性,否则同性,在%2意义下进行加法运算即可,最后判相同的时候也要%2,因为可能有负数 #include<iostream ...

  6. 字符串-format格式化

    format函数格式化操作(3.6以上) 基本格式: 变量.format(参数,参数,....) 限定符号:(必须在:后面使用) 对齐相关:参数位置:填充符号对齐符号总长度 1:#>20 < ...

  7. TCP协议深度刨析

    这篇文章主要是详细说明TCP的拥塞控制,因为它对于我们理解整个TCP/IP协议栈非常重要,但我个人能力有限,其中引用了很多网上其他博主的文章,在下文引用处都有说明,主要是让整篇文章能够连贯,不至于让所 ...

  8. background-size属性

    background-size:属性有 auto:length :百分比 length 如:10px 20px 固定的 或者是写成一个 ,10px  另外一个就默认为 auto; 写成百分比的形式 是 ...

  9. python之unittest

    unittest是单元测试的一个框架 在说unittest之前,先说几个概念: TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoade ...

  10. IDEA中创建HBASE工程

    IntelliJ IDEA+maven的HBase开发环境搭建 hbase 配置(hbase-site.xml)和基本使用 16010端口可以查看Hbase web信息