for与foeach,while等深入比较与研究

本文摘自<PHP编程思想>一书,版权属于洪建家所有,请尊重版权.

PHP编程思想之for,foreach,while,do-while深入讲解
初学编

1.1 for循环语句

for语句的格式为:

概念:for是计次数循环,其执行次数由循环变量的终值减去初值再除以步长得出.

for (初始化语句; 条件语句; 控制语句)
{
语句1 ;
语句2 ;
….

语句n ;
}
for 语句的执行顺序如下:
首先执行“初始化语句”,无条件被执行一次,然后测试“条件语句”
若条件成立,则执行语句1到语句n;然后执行“控制”语句.程序完成第一过程体.
接下来程序会再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束for循环.

DEMO:

demo 1写法

<?php

for($i=0;$i<10;$i++)
{
echo $i.”\r\n”;
}
?>

demo 2 写法

<?php
for($i=0;$i<10;$i++):
echo $i.”\r\n”;
endfor;
?>

demo 3 写法

<?php
$i=0;
for(;;)//注意初始化语句与条件语句与控件语句都为空
{
if($i>10){
break;
}
echo $i.”\r\n”;
$i++;
}
?>
1.2 foreach 循环

foreach (数组 as 数组值)
{
语句1 ;
语句2 ;
….

语句n ;

}
foreach (数组 as 数组键名 => 数组值)

{
语句1 ;
语句2 ;
….

语句n ;

}

注:
1.第二种写法主要是扩展第一种写法;
2.执行时,数组内部的指针会自动指向第一个单元,这意味着在做数组循环时不需要调用 reset()方法.程序结束后,指针返回数组尾端.
3.foreach 所操作的是指定数组的一个拷贝,而不是该数组本身,如果想改变数组,可以在执行之前用引用方法改变.
4.foreach 不支持用“@”来抑制错误信息的能力。
5.foreach 可以遍历对象

1.3 while 循环

while循环和for循环类似,其格式为:

while (条件语句)
{
语句1 ;
语句2 ;
….

语句n ;
}

解说:

执行while时,先测试“条件语句”,如果条件成立,则执行语句1到语句n,直至条件不成立时结束循环。

故如果当条件为false时,那么循环体一次都不会被执行.当循环体执行由True转变到False语句时,才会结束循环

DEMO:

demo 1写法
<?php
while ($i<10)
{
 $i++;
 echo $i”\r\n”;
}
?>

demo 2写法

<?php
while ($i<10):
{
 $i++;
 echo $i.”\r\n”;
}
endwhile;
?>

1.4 do-while循环
do
{
语句1 ;
语句2 ;
….

语句n ;
while(条件语句)
}

do-while与while 循环最大区别在于表达式的值是在每次循环结束时检查而不是开始时,所以 do-while 的循环体保证会执行一次.

demo

<?php
$i=9;
do {
    if ($i < 10) {
        echo $i.”\r\n”;
        break;
    }
} while(0);

未完,待继
?>

Leave a Reply