php的流程控制结构图,3.PHP的流程控制结构

在任何一门设计语言中,都需要支持满足程序结构化所需要的三种基本结构、顺序结构、分支结构(选择结构或条件结构)和循环结构。

最基本的是循序结构。顺序结构就是语句按出现的先后次序顺序执行。在PHP的程序设计语言中,顺序结构的语句主要是赋值语句、输入/输出语句等,所以对于顺序结构就不必过多介绍了。

1. 分支结构

在程序中使用分支结构可以有以下几种形式:

单一条件分支结构

双向条件分支结构

多向条件分支结构

巢状条件分支结构

1.1 单一条件分支结构(if)

if语句的格式如下:

if(表达式)

语句块;

if(表达式){

语句块;

}

1.2 双向条件结构分支(else子句)

if(表达式){

语句块1;

}else{

语句块2;

}

1.3 多向条件分支结构(elseif子句)

if(表达式){

语句块1;

}

elseif{

语句块2;

}

……

elseif{

语句块n;

}

else{

语句块n+1;

}

1.4 多向条件分支结构(switch语句)

switch(表达式) //使用switch关键字,先对后面小括号中的表达式求值,然后结果匹配哪个值就执行哪个case语句

{

case 值1:

语句块1;

break;

case 值2: //和值2匹配时,没有break,控制权将转移到下一个case中的语句

case 值3:

语句块2; //该语句匹配2、3两个值

break;

……

case 值n:

语句块n;

break;

default: //都不匹配的时候执行的默认语句

语句块n+1;

}

2 循环结构

PHP中提供了while、do-while和for三种循环。

注意,循环体应包含趋于结束的语句(即循环变量值的改变),否则就可能成为死循环。所以使用循环时一定要有一个停止的条件。根据循环停止的条件不同,在PHP中提供了两种类型的循环语句。

一种是计数循环语句,通常使用for循环语句完成。

另一种是条件型循环语句,通常使用while或do-while循环语句完成。

2.1 while语句

while(表达式){ //表达式计算结果是一个布尔值,为TRUE时执行循环

循环体;

}

2.2 do…while循环

do{

循环体;

}while(表达式); //别忘记这里一定有个分号

while和do…while的区别在于,do……while的循环体至少会执行一次。

2.3 for语句

for循环适用于明确知道循环次数的情况。

for(初始化;条件表达式;增量){

循环体;

}

在for循环中,初始化总是一个赋值语句,用来控制循环变量初始值;条件表达式是一个关系表达式,它决定什么时候推出循环;增量表示每循环一次变量如何变化。循环体可以是单条语句和复合语句,如果是单条语句也可以不使用花括号。

for($i=1;$i<=10;$i++)

echo "for循环测试";

在for循环的三个表达式中,一个是多个表达式为空是允许的,通常被称为for循环的退化形式。可以将以上循环改写成下列几种格式:

//将for循环的第一部分初始条件提出来,放到for语句前面执行,但for语句中的分号要保留

$i=1;

for(;$i<=10;$i++){

echo "for循环测试";

}

//将第三部分提出来,放到for语句前面执行,但也要将分号保留

$i=1;

for(;$i<=10;){

echo "for循环测试";

$i++;

}

还可以每个表达式中编写多条语句:

for($i=1,$j=5,$k=10;$i<=10;$i++,$j+=5,$k+=10){

echo "\$i=$i,\$j=$j,\$k=$k
";

}

另外,增量不仅可以是增加的,也可以是递减的

3 特殊语句控制流程

这里介绍退出循环、跳过循环的语句。

3.1 break语句

break可以结束for、foreach、while、do……while或switch结构的执行。

执行break后,将退出for循环继续执行之后的语句。

3.2 contine语句

continue语句只能用在循环语句内部,功能是跳过该次循环,继续执行下一次循环结构。

在while和do……while语句中,continue是跳转到循环开始处继续执行。

对于for循环随后的工作是变量更新。

示例:求证书1~100的累加值,但要求跳过所有个数为3的数。

$sum=0;

for($i=1;1

if($i%10==3)

continue;

$sum+=$i;

}

continue语句的功能如下:

跳过本次循环,也可以接受一个可选的数字参数来决定跳出多重语句;

在循环中遇到contine就,就不会执行continue之后的语句;

contine用于结束本次循环,继续下一次循环。

3.3 exit语句

在当前脚本中只要执行到exit语句,不管在任何结构中,都会直接退出当前脚本。

exit()是一个函数,die()是exit()函数的别名。它带有一个参数可以输出一条消息。

下面是一个数据库连接失败的话利用exit()输出错误并退出的例子:

//如果连接失败则输出错误信息并退出脚本

$conn=mysql_connect("localhost","root","123456")or exit("连接数据库失败!");

//如果连接后选择数据库失败则输出错误信息并退出脚本

mysql_select_db("db")or die("连接数据库失败!");

$result=mysql_query(select * from table);

if(!result){

echo "SQL语句执行失败";

//直接退出当前脚本

exit;

}

顺序结构、分支结构、循环结构并不是彼此孤立的,可以彼此多层嵌套。

4 PHP新特性——goto语句

goto于具有用于跳转到程序的指定位置。

goto目标后带上目标位置的标志,且在目标位置用目标名加冒号标记。

goto可以用来实现循环:

//使用goto语句,循环10次

$=1;

st:

echo"第{$i}次循环
";

if($i++==10)

goto end;

goto st;

end:

echo "语句结束。";

非goto的循环如果有多层,需要从多层循环中跳出,goto语句也是最好的选择:

for($i=0,$j=50;$<100;$i++){

while($j--){

if($j==17){

goto end;

}else{

echo "变量i={$i},变量j={$j}
";

}

}

}

echo "i=$i";

end:

除了编写循环之外,goto比较常用于实现程序跳转:

$var=2;

switch($var){

case 1:

goto one;

echo"one";

case 2:

goto two;

echo"two";

case 3:

goto three;

echo"three";

}

one:

echo "执行1";

exit;

two:

echo "执行2";

exit;

three:

echo "执行3";

exit;

另外,PHP中的goto使用也顶一定的限制,只能在同一个文件和作用域中跳转,也就是说无法跳出一个函数或类方法,也无法跳入另外一个函数,更无法跳入任何循环和switch结构。

goto语句的常见用法是跳出循环或switch语句,可以替代多层break。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值