2013-08-18 78 views
0

假設我們有以下幾個例子。是否有任何性能差異,下面的使用差異,還是僅僅是個人偏好?以下for和while語句之間是否有實際區別?

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

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

注意:'for'和'while'是語句,而不是函數。 – Boann

+0

@Boann固定,謝謝。 –

回答

1

號不限於環可被寫爲一個while循環(和反之亦然)。同樣,each recursive function can be written as a loop(有時有很多工作,但可以完成),反之亦然。

關於業績:雖然我還沒有這個基準,兩個環路聲明正好在同一時間相同的變量,在同一時間執行相同的指令,並在[執行同一時間相同的比較。循環完成後,相同的變量(在您的示例中爲$i)以相同的值存在。我不明白哪裏會有性能差異。 (請注意,在某些其他語言(如C++)中,for循環的初始化部分中聲明的變量在循環後停止。)

您使用哪種循環主要是個人偏好問題。當迭代次數已知時,我喜歡使用for循環(例如,在您的示例中:10次迭代)。當循環不得不繼續下去,直到某些條件(你無法預測何時編寫程序)滿足爲止,比如在迭代你不知道大小的數據庫結果集時,我通常使用while循環。

0

唯一的區別是變量範圍(取決於編程語言)。

例如,您可能需要$ I只具有for循環,這樣就可以實現內的範圍。

這不能做while循環一樣,但比它們是相同的其他。

有人可能會產生非常邊際的性能優勢比其他,但是這將是具體的編譯器。這樣做會很小,以至於代碼首選項每次都會優先考慮。

+0

在PHP中,'for'的第一部分中聲明的變量不限於循環本身的範圍。 –

相關問題