看來這是編程邏輯的一個一般性的問題,因爲這個問題似乎在我的代碼出現,無論用什麼語言它真實編碼。繼續下一個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)沒有結果返回。 –