【问题标题】:PHP: Why is this an infinite loop? [closed]PHP:为什么这是一个无限循环? [关闭]
【发布时间】:2013-04-19 13:00:42
【问题描述】:
$x = 0;
$y = 0;

while ($x < 6);
{
    while ($y < 6)
    {
    echo "INSERT INTO map_location(xLoc,yLoc) VALUES ($x,$y)"; 
    $y++;
    }
    $x++;
}

我正在尝试使用 PHP 脚本批量生成 SQL 语句,以生成从 0 到 6 的所有可能的 x、y 坐标组合。那应该是总共 49 个组合,我不想插入它们逐个。我正在努力弄清楚为什么这是一个无限循环。

【问题讨论】:

  • 删除第一个while循环后的分号。这一行将无限循环,根本不会进入其余代码。
  • 另外,正如所写,当变量为 5 时,您的循环将停止 - 如果您想要 7 次迭代,您应该将检查修改为 &lt;= 6
  • GAH,又是分号!谢谢安德鲁西
  • 好吧,它也不值得一票。所以现在这个问题已经得到解决,这也为 OP 留下了一些代表,我认为我们可以忍受这个,对吧?
  • 循环的最后一次迭代使用

标签: php loops while-loop combinations infinite-loop


【解决方案1】:

此声明:

while ($x < 6);

基本上是这样的:

while ($x < 6) { }

这是一个无限无限循环。

【讨论】:

  • 让我们保持正确的命名法 :) 它是infinite loop
  • @sircapsalot 希望获得批准 :)
【解决方案2】:

您的第一个 while 之后似乎有一个分号,从逻辑上讲,

$x = 0; 
while ( $x < 6 ); 
// the above statement is always going to be true because x = 0 (and 0 is less than 6), hence, always going to loop.

删除分号,你应该设置。

【讨论】:

    【解决方案3】:

    试试这个:

    for ($x=0;$x<=6;$x++)
    
        for ($y=0;$y<=6;$y++)
    
             echo "INSERT INTO map_location(xLoc,yLoc) VALUES ($x,$y) <br />"; 
    

    【讨论】:

      猜你喜欢
      • 2016-07-27
      • 2021-08-16
      • 2018-01-13
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2013-07-25
      相关资源
      最近更新 更多