我一直在尋找通過在工作中的一些代碼,並發現了一些我從來沒遇到過:我們調用包含這一切的時候功能爲什麼for(;;)有效?
for (; ;)
{
// Some code here
break;
}
,我最近纔得到了在那裏,看看它是如何工作的。爲什麼這個工作,並記錄在某個地方?
它好像一個while循環會一直在這種情況下更合適......
我一直在尋找通過在工作中的一些代碼,並發現了一些我從來沒遇到過:我們調用包含這一切的時候功能爲什麼for(;;)有效?
for (; ;)
{
// Some code here
break;
}
,我最近纔得到了在那裏,看看它是如何工作的。爲什麼這個工作,並記錄在某個地方?
它好像一個while循環會一直在這種情況下更合適......
它本質上是一樣的while(true)
。它沒有任何初始化,不會在迭代之間改變任何東西,並且在沒有任何東西使其錯誤的情況下假定爲真。
所以問題是這個行爲是否特定於for循環或者是否有任何空語句被認爲是真的... – mensi
哦,PHP沒有任何東西,所以你認爲無限循環比沒有代碼執行更合乎要求。有時PHP可能是一個有點棘手的混蛋。 – thatidiotguy
'if()'在意外的')'上給出了一個分析錯誤。只有'for'循環實際上在括號中有三個語句,每個語句由';'分隔。 –
第一個空白語句在開始時執行。
第二坯件表達式(其確定是否退出該循環或不)評估爲TRUE隱式:
http://php.net/manual/en/control-structures.for.php
第三空白語句每次迭代之後執行。
所以任何踢出循環的條件都需要在循環中。
這是一個無限循環。
通常你會碰到這樣的:
for ($i=0; $i<10; $i=$i+1)
但你可以省略任何部件。
這些都是有效的:
for ($i=0; ; $i=$i+1)
for (; $i<10; $i=$i+1)
for (; $i<10;)
但是,如果你忽略第二個部分,將有退出循環沒有條件。如果你不知道你想要運行循環的次數,可以使用它。您可以使用break
指令退出循環在這種情況下
for (;;)
{
// some code
if (some condition)
break;
}
需要注意的是,如果你不把break
頁面只會被卡住並運行無限期
很有關係:HTTP://計算器。 com/questions/4592166/what-is-an-empty-loop – nico
它與do {}相似,while(true) – Zaffy