PHP流程控制的分支结构
流程的分类
Ø 顺序结构(默认,没有那个语言是从下往上执行的)
Ø 分支结构(选择结构)
Ø 循环结构
分支结构
程序在执行过程中,往往要根据不同的运行结果做出不同的选择,或者书忽略部分代码的执行,这种执行结果就是分支结构
单项分支结构
Ø 格式:
if(条件表达)
一条PHP代码
u 如果条件表达为真,将会执行if之后的一条PHP代码
u 如果条件表达为假,那么将不会执行if之后的第一条PHP代码
注意:该格式的分支结构仅能控制if之后的第一条PHP语句
Ø 单项分支结构二格式:
if(条件表达式){
}
该格式的分支结构,可以控制if之后的一个完整的代码块{}区域的所有内容
双项分支结构
Ø 格式1:
if()
执行一条PHP语句
else
执行一条PHP语句
Ø 格式2:
if(条件表达){
执行多条PHP语句
}else{
执行多条PHP语句
}
多项分支结构
Ø 格式1:if..else分支扩展
if(条件表达式){
PHP代码
}elseif(条件表达式){
PHP代码
}elseif(条件表达式){
PHP代码
}else{
PHP代码}
Ø 格式2:
switch..case格式
switch(){
case 值:
PHP语句
break;
case 值:
PHP语句
break;
...
befault:
PHP语句
}
注意:
1.switch..case 的分支选择和if...elseif...else的分支选择并不相同。
2.switch...case 的分支结构可以同时执行多条分支(分支中没有break语
句出现,那么将从当前case开支一致执行到最后)
3.如果使用switch..case实现多项分支的单项选择,可以为每一个分支添
加break语句。
4.switch..case的取值需要从字符串和整型以及布尔值中选取,不推荐
使用浮点型,不可以使用符合数据类型和特殊数据类型
5.switch..case只用于精确值的判断,不能用于范围值的判断
注意:书写代码一定注意锁紧的格式,增加代码的可读性
巢状分支结构
巢状分支就是在双向分支或者多项分支的正区间或者假区间再次使用分支结构,这类结构统称为巢状分支结构(也就是循环的嵌套)
PHP流程控制之循环结构
结构的分类
Ø while 循环
Ø do...while循环
Ø for 循环
Ø foreach 循环数组
Ø mt_rand()获取一个随机数
@param1第一个开始的数值
@param2第二个结束的数值
返回值:返回从开始的数值到结束的数值之间任意一个数值。
while 型循环
Ø 格式:
while(条件表达式){
PHP代码;
[自增自减的条件]
}
注意:书写循环结构时一般都需要自增自减条件
do..while循环结构
Ø 格式:
do{
PHP代码
[自增自减条件]
}while(条件表达式);
Ø do...while 和while的区别:
while型循环的每一次循环体的执行都要依据while条件表达式的结果进行约束
do...while除了第一次之外,剩下每次的循环体的执行都要受while条件表达式结果进行约束
for 循环结构
for循环是由while循环演变过来的
Ø for格式:
for(表达式1;表达式2;表达式3){
PHP语句(循环体)
}
表达式1:表示初始化比变量
表达式2:表示循环退出的条件(条件表达式)
表达式3:自增或者自减条件
Ø for循环和while循环的去区别:
u 效率问题:
for循环要高于while循环,for循环属于计数型循环,而while循环属于bool型循环(条件循环)
u 类型问题:
技术型循环只有for循环
布尔值循环:while循环do...while循环和foreach循环
Ø for循环的执行格式:
u 执行表达式1,对变量进行初始化赋值(仅执行一次)
u 执行表达2,判断是否符合循环的条件
u 如果表达式2符合执行循环的条件,那么久执行{}内的代码(循环体)
u 执行表达3自增或者自减条件
u 表达式2判断是否符合继续循环的条件3,4,5
流程控制的其他语句
Ø break
u 作用1:可以在switch中使用break来终止分支结构的执行
u 作用2:可以在任何的循环结构中使用break来终止循环操作
u 注意:break后面可以加参数,如果直接写break 1(默认1表示终止一层循环)相当于一个break 2(表示终止2层循环)表达式终止两层循环。(循环结果原本是0到10在5处使用break只能0到5)
Ø continue
u 在循环结构中用来终止本次循环开始下一次循环。(把本次循环跳过去不影响下一循环)
u 注意:continue 后面可以加参数,如果直接写continue 1(表示一个continue 1)如果continue 2表示跳到外层继续循环(循环结果原本是0到10 在5处使用continue则显示0到10但没有5)