前言
本篇文章主要阐述了PHP中的流程控制及各种循环的知识点,可能总结的不是很到位,如果有总结的不对的地方,还希望各位简友指点...
什么叫流程控制?
在声明式的编程语言中,流程控制指令是指会改变程序运行顺序的指令,可能是运行不同位置的指令,或是在二段(或多段)程序中选择一个运行。
流程控制有三大结构:
1:顺序结构
程序自然运行状态,就是从前往后(从上到下)运行程序,称为顺序结构.
2:分支结构:
程序运行过程中,根据判断条件不同结果(true或false),执行不同的分支(其他分支不再执行).
3:循环结构:
程序运行过程中,根据判断条件的不同结果(true或false),然后决定是再次执行还是不再执行.
if语句
if一般有一下几种常见的语句(不同的分支数量)
1:单分支
形式:
if(条件判断)
{
//如果条件满足,就会执行这里面的代码;
}
如果不满足条件判断,则直接结束if语句;
2:双分支
形式:
if ( 条件判断 ){
//如果条件满足,就执行这里
}
else{
//如果条件不满足,就执行这里
}
3:多分支
形式:
if ( 条件判断1 ){
//分支1;
}
elseif( 条件判断2 ){
//分支2;
}
elseif( 条件判断3 ){
//分支3;
}
。。。。。。。前面的elseif分支,可以若干个(0个以上)
if语句的综合形式
语法:
if( 条件1){
分支1
}
elseif(条件2){
分支2:;
}
elseif( 条件3){
分支3;
}
。。。。。。可以若干elseif分支
else{
else分支; //前面没有一个条件满足的时候,就执行本分支
}
说明:
1,elseif分支,可以重复若干次,也可以没有。
2,最后的else部分,是“必不可少”的部分。
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。

while循环语句
循环的含义:就是通过某种语法结构,对某段代码可以“反复执行”。
while循环语法:
while(条件判断)
{ //循环条件,跟if条件完全一样
。。。。循环体语句;
}
说明:
循环一开始就进行条件判断:
如果成立:则执行循环体,而后会自动回到循环开始位置继续进行条件判断,如此反复;
如果不成立:则退出循环,执行后续语句。

do while 循环语句
do while循环语法:
do {
。。。。循环体语句;
}while(条件判断);

说明:
先执行一次循环体,然后进行条件判断:
如果成立:则继续回去执行循环体,而后再次进行条件判断,如此反复;
如果不成立:则退出循环,执行后续语句。
for循环语句
for循环基本语法
for(循环变量初始化①,循环的条件判断②,循环变量的改变③)
{
循环体语句.......④
}
说明:
1: 此语句结构是将循环的3个要素都集中在一起写的形式,比较紧凑,容易控制,最常用。
2: 循环初始化变量语句①只执行一次,真正的正常循环是在②--④--③步骤中进行.
3: for循环执行的流程图

多重循环
就是循环里面再套循环的代码。
其基本执行流程,其实仍然是循环的基本逻辑,只是循环的时候要注意:外层循环执行每一次,里层循环就会完整执行循环的“所有次”(一个完整循环的过程)。
(这段话很重要,一定要完全理解这段话的意思,才能熟练使用多重循环.)
举例:
<?php
for($i=1;$i<=3;$i++)
{
for($j=1;$j<=3;$j++)
{
echo "$i $j<br/>";
}
}
?>
//如果外部for循环执行3次,内部for循环执行3次,内部for循环将一共要执
行9次(第一个外部for循环为3次,第二个内for部循环为3次)。
循环的中断
循环是按给定的条件,只要条件满足就会继续执行循环体的一种语法形式。
但,我们也可以在循环过程中(循环体内),人为将循环中断。
有两种中断循环的方式:
continue:
含义:停止当前正在进行的这一次循环(即后续语句不再执行),继续下一次循环要执行的语句。
语法形式:
continue [$n]; //表示是要中断几层循环。
//其中$n可以省略,如果省略,表示1,就是中断当前层的循环。
break:
含义:停止当前正在进行的循环语句(即完全终止循环),去执行循环之后的语句。
语法形式:
break [$n]; //$n可以省略,如果省略,表示1,就是中断当前循环。
这里,表示是要中断几层循环。
他们都适用于3种循环。
结束语
学习循环的时候一定要注意一下三点:
1.循环变量的初始化!
2.循环变量的条件判断!
3.循环变量的改变!
在写循环代码的时候只要定义好这三点,以及条件判断后你希望代码接下来做点什么,然后写在循环体内,这样写循环的时候就不至于从何敲起.刚开始学习循环的我看了很多书和视频,道理及用法我都明白,但是真的到了敲代码的时候就不知道从何入手了,但是记住这三点,写循环绝对游刃有余.
网友评论