一、什么是流程控制
就是对程序执行过程的控制。通常使用逻辑判断来实现。
流程控制分为
顺序结构:代码按顺序从前向后执行
分支结构:通过条件判断,执行不同的代码段。If switch
循环结构:执行相同的代码段,直到条件不满足。For while do-while
二、流程图
猜数字小游戏
电脑随机一个0-10之间的数,让我们去猜。
如果没猜对,电脑会告诉你猜大小,还是猜小了。你再继续猜,真到猜中。
猜中后,显示是什么 数,猜了几次。
椭圆:代表开始和结束
矩形:代表操作
菱形:代表条件判断
箭头:代表执行方向
平行四边形:代表数据的输入和输出
三、分支结构
1.If,条件分支
一个实用的编程技巧,右边如果是值时放到左边
If/else
在编程中,更多的时候,使用if/else要多于if
If/elseif/else
如果把elseif写成else if执行结果是一样的
但是语法上有不同的地方,后一种分开的方式相当于if结构的嵌套
不推荐分开的写法,而且我们平时编程时,也不要写类似的多层嵌套。
2.Switch,状态分支
Switch结构只进行一次条件判断
执行代码段后,如果此段没有break,则转到下一个case的代码段中继续执行,不会进行判断。如果遇到break,则整个switch结构结束。
编程时,如果if/elseif/else层数了,就用switch吧
实际上还要判断一下,如果if中是状态值判断,就可以用switch,如果是大于,小于一类的判断,就不能改成switch
否则 ,就会出现,0分学生变优秀。
四、循环结构
循环结构有:for foreach while do-while
1.for
名称 | 执行次数 | 作用 |
表达式1 | 1 | 进行循环参数的初始化 |
表达式2 | N+1 | 设定条件,判断是否结束循环。作用就是条件判断 |
表达式3 | N | 改变循环参数 |
3个表达式,都可以被省略,语法上是合格的
我们再说一下刚才表达式1中写多个子表达式时逗号的作用
逗号隔开,各个子表达式会分别执行。
总的表达式1的结果是:最后一个子表达式的运算结果
2.Foreach
是专门用于遍历数组元素的循环结构
先把指针指向第一个元素,每次循环时取出一个元素,把元素的键赋给$k,把元素的值赋给$v
执行循环体内的代码
然后指针向前移动一下,判断是否是合法的指针,退出循环
3.while
从中分析:
首先执行的是条件表达式
如果条件表达式满足,就执行循环体中的代码
如果不满足,就退出循环体
循环的次数是不确定的
条件判断中的参数是需要在循环体内的代码进行改变的!
While循环一般用于循环次数不确定的情况
4.Do-while
与while循环的区别是,do-while至少执行一次循环结构中的代码
5.循环跳出之Break,continue
Break和continue都是用于终止循环
Break终止本次循环,并退出整个循环体
Continue终止本次循环,开始下一次循环
条件符合时,break将终止本次循环(echo ‘<hr>’没被执行),同时退出整个循环
条件符合时,continue将终止本次循环,它下面的代码不会被执行。然后回到循环的头部,表达式3运行,再判断表达式2,满足则进行下一次循环,不满足结束整个循环。
Break n和continue n
N是一个整数,同样都是终止本次循环,然后跳出几层循环
Break 3的情况
6.程序跳转之goto
可以让程序跳转到另一个位置
使用goto时的注意事项:
- Goto只能在脚本程序及相同作用域中跳转
- 不能跳转到函数中
- 不能跳转到循环体中,但是从循环体中向外跳是可以 的
- 不能从函数中跳到函数外,但是可以在函数内跳转
代替的知识:
用goto来代替break和continue
下面的例子中代替了continue
可以使用continue代替switch中的break
在PHP中,把switch看成是循环次数为1 的一个循环结构
五、流程控制之替代语法
替代语法把分支或循环结构的大括号进行了替代
把左大括号替换成冒号
右大括号用endif; endswitch; endfor; endforeach; endwhile;来代替
(do-while是没有替代语法的)
在应用上,主要是嵌入html时候用的多
我是小咖,一个正在前往大神之路的小咖。
发个邀请:
如果你正好想学习php,可以与我一起交流,我的VX:feilueze333。下面资料免费赠送