我在另一个while循环中包含的else语句中有一个while循环。类似这样的内容:while->;否则->;虽然我正在更新内部while循环中的一些变量,这些变量也构成了外部while循环的条件。我所期望的是,只要内部while循环中的变量取的值打破了外部while循环的条件,外部while循环就应该中断。但这似乎并没有发生,而内部循环一直在运行。最终我得到一个错误,因为循环没有停止,条件仍然无效(IndexError:list index超出范围)
nums=[0,0,0]
i=0
j=i+1
k=len(nums)-1
while(k>j):
s=nums[i]+nums[j]+nums[k]
#greater than 0
if s>0:
#do something
else:
#do something
while(nums[k]==nums[k-1]):#<<<<<<<------ here I get IndexError: list index out of range
print("2nd wihile ",k,j)
k-=1
k-=1
while(nums[j]==nums[j+1]):
j+=1
j+=1
内部while中的print语句在给出错误之前打印以下内容:
2nd wihile 2 1
2nd wihile 1 1
2nd wihile 0 1
2nd wihile -1 1
2nd wihile -2 1
IndexError: list index out of range
请看以下内容:
它总结了您的问题,即外部回路在内部子回路期间未进行测试。
测试将应用于每个
iteration
,一旦引入内部循环,外部循环将进行迭代,因此检查,直到外部循环的下一次迭代为止相关问题 更多 >
编程相关推荐