概述
流程控制就是研究程序的走向。
有3大流程控制:
1.顺序结构 : 程序运行的自然状态,就是从前往后(从上到下)运行程序。
2.分支结构: 程序运行过程中,根据判断条件的不同结果,来执行不同的分支(每次只执行一个分支)。
3.循环结构: 程序运行过程中,根据判断条件的不同结果,来决定是再执行一遍,还是不执行。
分支结构
if分支
if(){
};
if(){
}else{
};
if(){
}else if(){
}else if(){
}else{
}
switch 分支
语法:
switch( 一个变量数据或表达式结果$v1 )
{
case 值1: //如果$v1 等于 这个“值1”,就执行本分支
分支语句1;
break; //表示跳出该分支,也就是跳出switch语句。
case 值2: //如果$v1 等于 这个“值2”,就执行本分支
分支语句2;
break;
。。。。。。 //可以更多的分支
default:
默认分支; //前面都不满足的时候,就执行这里,default分支也可以不写
}
说明:
1,上述“值1,值2,。。。”可以是各种标量类型,也可以是表达式——因为最终它也是一个值。
2,用于进行测试的数据变量$v1跟后续的各个值,只能进行“相等比较”(==)。
3,从上述第2条角度来说,其实际上不如if灵活。
注意:
当某个分支满足条件并执行该分支后,如果该分支中没有break语句,此时,程序的流程会“直接进入”后一个分支 继续执行,直到碰到break才会结束switch。
循环结构
循环的含义:就是通过某种语法结构,对某段代码可以“反复执行”。
while循环语法:
while(条件判断)
{
。。。。循环体语句;
判断条件的变化的语句;
}
说明:
循环一开始就进行条件判断:
如果成立:则执行循环体,而后会自动回到循环开始位置继续进行条件判断,如此反复;
如果不成立:则退出循环,执行后续语句。
do while循环语法:
do {
。。。。循环体语句;
条件初始值变化语句;
}while(条件判断);
说明:
先执行一次循环体,然后进行条件判断:
如果成立:则继续回去执行循环体,而后再次进行条件判断,如此反复;
如果不成立:则退出循环,执行后续语句。
for循环语法:
for(循环变量初始化1; 循环条件判断2; 循环变量的改变3){
。。。。。。。。循环体语句块4;
//这里可以有多条语句
//是可以反复执行的部分
}
循环变量初始化语句1只执行一次,所以真正的正常循环,是在“2->4->3”之间进行。
循环的中断
循环是按给定的条件,只要条件满足就会继续执行循环体的一种语法形式。
但,我们也可以在循环过程中(循环体内),人为将循环中断。
有两种中断循环的方式:
continue中断:
含义:中断当前正在进行的循环体(即后续语句不再执行),继续下一次循环要执行的语句。
语法形式:continue [$n]; //表示是要中断第几层的循环,继续该层循环的下一次。
//其中$n可以省略,如果省略,表示1,就是中断当前层的循环。
break中断:
含义:停止(跳出)当前正在进行的循环(即完全终止循环),去执行该循环之后的语句。
语法形式:break [$n]; //表示是要中断几层循环。
//其中$n可以省略,如果省略,表示1,就是中断当前循环
他们都适用于3种循环。
循环中断的层数的含义:
for(....) //循环1
{
for(...) //循环2
{
for(...) //循环3
{
break ; //中断循环3
break 1; //中断循环3
break 2; //中断循环2
break 3; //中断循环1
//continue道理一样!
}
break 1; //中断循环2
break 2; //中断循环1
}
break 1; //中断循环1
}
注意:循环的层数是从内到外的。