看来这是编程逻辑的一个一般性的问题,因为这个问题似乎在我的代码出现,无论用什么语言它真实编码。继续下一个for循环,如果电流回路0
基本上我有2套for循环,在for循环中。这些for循环的目的是枚举两组值之间的所有可能的值。
与代码的问题是,第二组值包含一个0值将不枚举。
举例来说,我们想要枚举0,0,0和1,1,1之间的所有值,因为每个嵌套循环都经过处理,所以这个工作非常好。然而,我们试图在0,0,0和0,1,0之间计算循环将不会继续到下一个循环,而是它将退出循环并继续到代码的其余部分。
for ($i1=$coords1[0]; $i1<=$coords2[0]; $i1++) { //if $coords2[0] = 0 loop will fail
for ($i2=$coords1[1]; $i2<=$coords2[1]; $i2++) { //if $coords2[1] = 0 loop will fail
for ($i3=$coords1[2]; $i3<=$coords2[2]; $i3++) {//if $coords2[2] = 0 loop will fail
$blocks.= $i1.",".$i2.",".$i3."|";
}
}
}
return $blocks;
全码:PHPFIDDLE
嗯......你会觉得,因为你使用的是在你的榜样,嵌套循环应至少执行一次,'<='为您评估。看着你的代码,似乎它会工作得很好...... /思考上限。 – Charlie74
我用Javascript重新创建了你的代码,它似乎工作正常。看看这里:http://jsfiddle.net/9A5dL/。如预期的那样,使用000,111生成8个响应。如预期的那样,使用000,010会生成2个响应,这看起来是否适合您? (确保在运行代码时打开JS控制台) – Charlie74
下面是我的服务器上托管的脚本的完整示例。你可以在[LINK1]中看到(http://projectbuilder.info/blockcalc.php?coord1=1,0,1&coord2=1,1,1)(比较1,0,1和1,1,1)计算按预期执行,但在[LINK2](http://projectbuilder.info/blockcalc.php?coord1=1,0,1&coord2=1,1,0)中(比较1,0,1和1,1, 0)没有结果返回。 –