2009-11-13 95 views
0

阅读PHP书时,我想尝试自己的(继续)示例。 我作了如下的代码,但它不工作,尽管一切都似乎是确定PHP继续声明

$num2 = 1; 

    while ($num2 < 19) 
     { 
      if ($num2 == 15) { 
      continue; 
      } else { 
      echo "Continue at 15 (".$num2.").<br />"; 
      $num2++; 
      } 

     } 

输出是

Continue at 15 (1). 
Continue at 15 (2). 
Continue at 15 (3). 
Continue at 15 (4). 
Continue at 15 (5). 
Continue at 15 (6). 
Continue at 15 (7). 
Continue at 15 (8). 
Continue at 15 (9). 
Continue at 15 (10). 
Continue at 15 (11). 
Continue at 15 (12). 
Continue at 15 (13). 
Continue at 15 (14). 

Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/php/continueandbreak.php on line 20 

第20行是该行

if ($num2 == 15) { 

好了好了告诉我我的例子有什么问题? 对于这样一个Noob问题,我很抱歉

回答

10

如果你不增加$num2之前continue你会进入一个无限循环;

$num2 = 0; 

while ($num2 < 18) 
    { 
      $num2++; 
      if ($num2 == 15) { 
       continue; 
      } else { 
       echo "Continue at 15 (".$num2.").<br />"; 
      } 


    } 
+0

你的代码仍然可以无限循环; 'continue'开始循环的下一次迭代,而不执行if-else子句后面的内容。 – Amber 2009-11-13 03:02:22

+0

哇,令人尴尬 – 2009-11-13 03:02:51

+0

感谢很多,这工作很好,我有这个想法。 – taabouzeid 2009-11-13 03:25:50

2

你甚至不需要继续那里,你的代码相当于;

$num2 = 1; 

    while ($num2 < 19) 
     { 
       if ($num2 != 15) { 
        echo "Continue at 15 (".$num2.").<br />"; 
        $num2++; 
       } 

     } 

如果这不是你想要达到的目标,那么你仍然使用错误。

在PHP
+0

这实现了相同的结果:最终会超时的无限循环。 – jheddings 2009-11-13 03:03:45

+0

+1用于指出不正当使用继续 – xil3 2011-04-20 15:53:18

+0

您一定要移动$ num2 ++;在if循环之外(下面) – 2012-01-26 16:21:18

0

,使用阵列的foreach用于循环

for($num = 1; $num < 19; $num++) { 
    if ($num != 15) { 
     echo "Continue at 15 (" . $num . ") . <br />"; 
     break; 
    } 
}