<p>下面的代码应该打印多行</p>
<pre><code>1
2
3
</code></pre>
<p>夹杂着一排排</p>
<pre><code>0
</code></pre>
<p>但是,它实际打印的是多行</p>
<pre><code>1
1
1
1
3
</code></pre>
<p>夹杂着一排排</p>
<pre><code>0
</code></pre>
<h2>代码:</h2>
<pre><code>boxes = []
for y in range(len(hmap)):
for x in range(len(hmap[y])):
w = 4
h = 4
minh = hmap[y][x]
maxh = hmap[y][x]
htemp = h
while True:
if y + htemp > len(hmap): break
passes = False
wtemp = w
while True:
if x + wtemp > len(hmap[y]): break
for c in range(x, x+wtemp):
for r in range(y, y+htemp):
minh = min(minh,hmap[c][r])
maxh = max(maxh,hmap[c][r])
if maxh - minh > v:
print('1')
break
else:
print('2')
break
else:
print('3')
break
print('0')
passes = True
wtemp += 1
if passes:
boxes.append([x,y,wtemp-1,htemp])
htemp += 1
if not passes: break
</code></pre>
<ul>
<li><code>hmap</code>是一个由浮点值组成的二维数组,传递给该代码所在的函数。你知道吗</li>
</ul>
<p>这段代码应该生成一系列矩形,供其他(不相关的)代码部分稍后使用。“通过”(最小值/最大值的差值不大于<code>v</code>)的矩形会导致</p>
<pre><code>0
</code></pre>
<p>待打印。不“通过”的矩形应该引起</p>
<pre><code>1
2
3
</code></pre>
<p>当嵌套的<code>for</code>和<code>while</code>循环中断时打印。为什么不起作用?你知道吗</p>