以下for和while语句之间是否有任何实际区别?

时间:2013-08-18 14:41:31

标签: php

比如说,我们有以下内容。以下是否有任何性能差异,使用差异,或者只是个人偏好?

for($i=0; $i<10; $i++){
    echo $i;
}

$i = 0; 
while($i < 10){
    echo $i;
    $i++;
}

2 个答案:

答案 0 :(得分:1)

没有。任何for循环都可以写成while循环(反之亦然)。同样的方式,each recursive function can be written as a loop(有时会做很多工作,但可以做到),反之亦然。

关于性能:虽然我没有对此进行基准测试,但两个循环同时声明完全相同的变量,同时执行相同的指令并同时执行相同的比较。循环完成后,相同的变量(示例中为$i)存在相同的值。我没有看到任何性能差异会来自哪里。 (请注意,在其他一些语言中,如C ++,在for循环的初始化部分中声明的变量在循环后停止存在。)

您使用哪个循环主要取决于个人偏好。当迭代次数已知时,我喜欢使用for循环(比如在你的例子中:10次迭代)。当循环必须继续,直到某些条件(你在编写程序时无法预测)被满足时,就像迭代数据库结果集,你不知道大小,我通常使用while循环。

答案 1 :(得分:0)

唯一的区别是变量范围(取决于编程语言)。

例如,您可能希望$ i仅在for循环中具有范围,这可以实现。

这与while循环不能相同,但除此之外它们是相同的。

可能会产生极其微小的性能优势,但这对编译器来说是特定的。它会很小,每次代码偏好都会优先考虑。