6. 流程控制

流程控制,就是研究程序的走向。

6.1. 流程控制概述

6.1.1. 三大流程结构:

顺序结构:

程序运行的自然状态,就是从前往后(从上到下)运行程序。

分支结构:

程序运行过程中,根据判断条件的不同结果(true或false),执行不同的分支(其他分支不再执行)。

循环结构:

程序运行过程中,根据判断条件的不同结果(true或false),决定是再次执行还是不再执行。

6.1.2. 流程图常用图形符号:

6.2. if语句

有如下几种常见的if语句(不同的分支数量):

6.2.1. 形式1:单分支

形式:

if ( 条件判断 ){

//如果条件满足,就执行这里

}

流程图:

image.png

6.2.2. 形式2:双分支

形式:

if ( 条件判断 ){

//如果条件满足,就执行这里

}

else{

//如果条件不满足,就执行这里

}

流程图:

image.png

image.png

6.2.3. 形式3:多分枝

形式:

if ( 条件判断1 ){

//分支1;

}

elseif( 条件判断2 ){

//分支2;

}

elseif( 条件判断3 ){

//分支3;

}

。。。。。。。前面的elseif分支,可以若干个(0个以上)

else{

//最后的else分支,可以没有!

}

流程图:

image.png

image.png

综合案例:

在一个form表单中输入一个分数(0-100之间),程序可以给该分数进行“评语”,评语包括:

优秀,良好,中等,及格,不及格。

6.3. 分支结构之switch分支语句(重点)

语法:

switch( 一个变量数据或表达式结果$v1 ){

case 值1: //如果$v1 等于 这个“值1”,就执行本分支

分支语句1;

break; //表示跳出该分支,也就是跳出switch语句。

case 值2: //如果$v1 等于 这个“值2”,就执行本分支

分支语句2;

break;

。。。。。。 //可以更多的分支

default:

默认分支; //前面都不满足的时候,就执行这里

}

说明:

1,上述“值1,值2,。。。”可以是各种标量类型,也可以是表达式——因为最终它也是一个值。

2,用于进行测试的数据变量$v1跟后续的各个值,只能进行“相等比较”(==)。

3,从上述第2条角度来说,其实际上不如if灵活。

注意:

当某个分支满足条件并执行该分支后,如果该分支中没有break语句,此时,程序的流程会“直接进入”后一个分支继续执行,直到碰到break才会结束switch。

流程图:

image.png

示例:

image.png

无break终止时:

image.png

案例1:

使用switch实现

把成绩进行分档:60分以下:不及格;60-69:及格; 70-79:中等;80-89:良好;90-99:优秀;100:满分

案例2:

输入任意的年份和月份,输出该月的天数,例如:输入year:2019 month:7,输出该月的天数是31天

思路:天数是根据月份来决定,正常的是:1,3,5,7,8,10,12都是31天,4,6,9,11都是30天,唯一不同的是:

2月,如果是闰年是29天,非闰年则为28天。

/*

输入任意的年份和月份,输出该月的天数,例如:输入year:2019 month:7,输出该月的天数是31天

思路:天数是根据月份来决定,正常的是:1,3,5,7,8,10,12都是31天,4,6,9,11都是30天,唯一不同的是:

2月,如果是闰年是29天,非闰年则为28天。

*/

$year=2000;

$month=2;

switch ($month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

echo "31天";

break;

case 4:

case 6:

case 9:

case 11:

echo "30天";

break;

case 2:

if($year%4==0&&$year%100!=0 || $year%400==0){

echo "29天";

}else{

echo "28天";

}

break;

default:

echo "非法的月份";

break;

}

6.4. 循环结构之while循环语句

循环的含义:就是通过某种语法结构,对某段代码可以“反复执行”。

while循环语法:

**初始化数据**

while(条件判断){

。。。。循环体语句;

循环控制;

}

说明:

循环一开始就进行条件判断:

如果成立:则执行循环体,而后会自动回到循环开始位置继续进行条件判断,如此反复;

如果不成立:则退出循环,执行后续语句。

流程图:

image.png

案例1:

1)输出1-10;

image.png

2)求1-10的和;

image.png

案例2:

求7到17的和。

image.png

案例3:

1、输出1-100之间既能被3整除,也能被6整除的数

image.png

2、一张纸的厚度是2mm,问:折叠多少次后能够达到珠峰的高度(8848米)

image.png

6.5. 循环结构之do while循环语句

**do while循环语法:**

** 初始化数据**

do {

。。。。循环体语句;

循环控制;

}while(条件判断);

说明:

先执行一次循环体,然后进行条件判断:

如果成立:则继续回去执行循环体,而后再次进行条件判断,如此反复;

如果不成立:则退出循环,执行后续语句。

流程图:

image.png

image.png

案例:

求7到177之间能被7整除的数的和。

image.png

6.6. 循环结构之for循环语句(重点/难点)

for循环语法:

for(循环变量初始化1; 循环条件判断2; 循环变量的改变3){

。。。。。。。。循环体语句块4;

//这里可以有多条语句

//是可以反复执行的部分

}

说明:

1,执行流程如下图所示

image.png

2,此语句结构是将循环的3个要素都集中在一起写的形式,比较紧凑,容易控制,最常用。

3,循环变量初始化语句1只执行一次,所以真正的正常循环,是在“2->4->3”之间进行。

典型流程图:

image.png

案例1:

求1-100之间能被7整除的数的和。

image.png

案例****2:

输出1-100之间能被3整除但不能被5整除的偶数。

image.png

案例3:

输出1-100之间的数,并且要求:

能被3整除的使用“三”代替,能被5整除的使用“五”代替,能同时被两者整除的用“三五”代替。

image.png

6.7. 循环的中断

循环是按给定的条件,只要条件满足就会继续执行循环体的一种语法形式。

但,我们也可以在循环过程中(循环体内),人为将循环中断。

有两种中断循环的方式:

continue中断:

含义:中断当前正在进行的循环体(即后续语句不再执行),继续下一次循环要执行的语句。

语法形式:

continue [$n]; //表示是要中断第几层的循环,继续该层循环的下一次。

//其中$n可以省略,如果省略,表示1,就是中断当前层的循环。

break中断:

含义:停止(跳出)当前正在进行的循环(即完全终止循环),去执行该循环之后的语句。

语法形式:

break [$n]; //表示是要中断几层循环。

//其中$n可以省略,如果省略,表示1,就是中断当前循环

他们都适用于3种循环。

案例演示:

1、输出1-10的数,除了5不输出,其他都输出出来。

image.png

image.png

2、从1-10(含1和10)进行循环并输出该数字,并要求能被3整除就不输出,能被9整除就终止循环。

最后再输出循环变量的值。

image.png

while和for的区别:

1、能用for解决的,while基本能解决;

2、for一般用于知道循环次数的场景,while循环一般用于不知道循环次数的场景

6.8. 多重循环及案例

概念:

多重循环就是循环里面由出现循环的代码。

其基本执行流程,其实仍然是循环的基本逻辑,只是循环的时候要注意:外层循环执行每一次,里层循环就会完整执行循环的“所有次”(一个完整循环的过程)。

案例****1:

image.png

输出如下形式的数字到页面上:

1 2 3 4 5 6 7 8

2 2 3 4 5 6 7 8

3 2 3 4 5 6 7 8

4 2 3 4 5 6 7 8

image.png

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

image.png

image.png

案例****2:

输出如下表格:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

方法一:

image.png

方法二:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

image.png

案例3:

实现如下所示99乘法口诀表。

image.png

image.png

案例4:

有红、白、黑三种球若干个,其中红、白球共25个,白、黑球共31个,红、黑球共28个,求这三种球各多少个?

课间案例:

公鸡5元一只,母鸡3元一只,小鸡1元3只,100元买了100只鸡,问各多少?

image.png

php多分支结构 案例,第4天 PHP分支、循环结构相关推荐

  1. python多分支结构案例_python的程序控制结构-分支结构与身体质量指数案例--python-6-da...

    python的程序控制结构-分支结构与身体质量指数案例--python-6-da python的程序控制结构-分支结构与身体质量指数案例--python-6-days 程序控制结构 - 单分支 if ...

  2. JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))

    第3节 流程控制 一.接收用户输入 使用Scanner类来接收用户的输入. 新建一个Scanner对象:Scanner input = new Scanner(System.in); input可以接 ...

  3. c语言循环结构程序设计视频,第13讲:循环结构程序设计1

    C语言是计算机科学及应用专业的一门重要的专业基础 课,也是全校各 个专业的公共必修课程.它既可以为其它专业课程奠定程序设计的基础,又可以作为其它专业课程的程序设计的工具. 通过本课程的学习,应掌握计算 ...

  4. c语言第六章条件型循环结构,C语言课件(第六章 循环结构)

    C语言课件 第六章 循环结构 在许多复杂的问题中,常常需要做大量的类似的计算处理,这些类似的相同的处理过程存在重复性过程,即在某种条件成立的情况下需要处理相同的操作时,就要使用循环结构来完成. 类似于 ...

  5. c语言有关循环结构运用的题,应用C语言循环结构解决等差数列求和问题微课设计研究...

    高妍 [摘 要]本文以应用C语言循环结构解决等差数列求和问题作为微课主要内容,阐述了对微课设计进行的研究与探索. [关键词]C语言:循环结构:微课 当今,信息化高速发展,数字技术正在影响和改变着我们生 ...

  6. c语言中循环结构的作用,C语言中对于循环结构优化的一些入门级方法简介

    一.代码移动 将在循环里面多次计算,但是结果不会改变的计算,移到循环外面去. 例子: 优化前: void lower1(char *s){ int i; for(i=0;i if(s[i]>=' ...

  7. 循环结构c语言乘电梯,C语言循环结构练习题.doc

    (1)编写一个程序,求之值. (2)编写一个程序,求s=1+(1+2)+(1+2+3)+-+(1+2+3+-+n)的值. (3)编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒 ...

  8. 3.分支结构与循环结构

    1 程序结构 程序结构分为顺序结构.分支结构.循环结构.分支结构有:if结构,if....else结构,if...else if....else ,if...else结构,switch结构:循环结构有 ...

  9. 【MATLAB】流程控制 ( 循环结构 | for 循环 | while 循环 | 分支结构 | if end 分支结构 | if else end 分支结构 | switch case 分支结构 )

    文章目录 一.MATLAB 流程控制结构 二.for 循环 1.for 循环 2.嵌套 for 循环 三.while 循环 二.分支结构 1.if end 分支结构 2.if else end 分支结 ...

最新文章

  1. Py之minepy:minepy的简介、安装、使用方法之详细攻略
  2. 倒计时 | 7.24 阿里云 Serverless Developer Meetup 杭州站报名火热进行中!
  3. 给ADSL用户的忠告
  4. 转:Jmeter 用户思考时间(User think time),定时器,和代理服务器(proxy server)...
  5. WebSocket知识点总结
  6. 深入理解计算机系统视频版,绝对干货
  7. linux服务器开启公网访问_如何在外网用SSH访问内网LINUX服务器?
  8. 车牌识别算法实现及其代码实现之三:车牌识别
  9. php 绘制斜线,css怎么绘制斜线
  10. Mac下挂载NTFS硬盘
  11. 平面机构创意组合及分析实验QY-JX09
  12. 「游戏开发」游戏服务器端开发的一些经验
  13. html中collapse代码怎么写,CSS里的visibility属性有个鲜为人知的属性值:collapse
  14. esp32c3 crash分析
  15. FileZilla报错严重文件传输错误 550permission denied
  16. 一行shell命令实现代码行数统计
  17. Depix:还原马赛克工具的试用及总结
  18. MATLAB R2016a实现三方演化博弈
  19. 2020年书法落款_2017年书法落款图片_2017书法落款时间
  20. NETDMIS5.0手动测量2023

热门文章

  1. Fencing the Cows [USACO]
  2. WTL 自绘 进度条Progressbar
  3. Docker ASP.NET Core (5):Docker Compose
  4. 【php学习笔记】ticks篇
  5. VS2010 Visual Assist X 的配合
  6. 关于自动增涨外链的畅想
  7. 【MySQL】20个经典面试题,
  8. 下列叙述正确的是( )
  9. 9.Vue 表单输入绑定
  10. 4. Median of Two Sorted Arrays