Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:为什么这是一个无限循环? $x=0; $y=0; 而($x_Php_Loops_While Loop_Combinations_Infinite Loop - Fatal编程技术网

PHP:为什么这是一个无限循环? $x=0; $y=0; 而($x

PHP:为什么这是一个无限循环? $x=0; $y=0; 而($x,php,loops,while-loop,combinations,infinite-loop,Php,Loops,While Loop,Combinations,Infinite Loop,我正在尝试使用PHP脚本批量生成SQL语句,以生成从0到6的x,y坐标的所有可能组合。总共应该有49个组合,我不想一个接一个地插入它们。我正在努力弄清楚这是一个无限循环的原因。你的第一个后面似乎有一个分号,而,逻辑上说 $x = 0; $y = 0; while ($x < 6); { while ($y < 6) { echo "INSERT INTO map_location(xLoc,yLoc) VALUES ($x,$y)"; $y++;

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

你的第一个
后面似乎有一个分号,而
,逻辑上说

$x = 0;
$y = 0;

while ($x < 6);
{
    while ($y < 6)
    {
    echo "INSERT INTO map_location(xLoc,yLoc) VALUES ($x,$y)"; 
    $y++;
    }
    $x++;
}
$x=0;
而($x<6);
//上面的语句总是正确的,因为x=0(0小于6),因此总是循环。
删除分号后,应该设置分号。

此语句:

$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.
while($x<6);
基本上是这样的:

while ($x < 6);
while($x<6){}
这是一个无限循环。

试试这个:

while ($x < 6) { }

用于($x=0;$x删除第一个while循环后的分号。这一行将无休止地循环,根本不会进入代码的其余部分。另外,正如所写的,当变量为5时,循环将停止-您应该再次将检查修改为
GAH,分号!感谢andrewsiWell,它也不值得进行升级表决。因此,现在有了b即使是固定的,这也为OP留下了一些重复次数,我认为我们可以接受,对吗?循环的最后一次迭代在6处停止,使用无限循环
@sircapsalot:)
for ($x=0;$x<=6;$x++)

    for ($y=0;$y<=6;$y++)

         echo "INSERT INTO map_location(xLoc,yLoc) VALUES ($x,$y) <br />";