所以我正在研究一个能够找出数字因子的短程序。我有一个while循环和一个if语句,在那个循环中似乎没有执行。 下面的代码:如果语句在while循环中行为不正确
while e < a:
print "loop"
print str(e) + "e"
print str(i) + "i"
print str(a) + "a"
if e * i == a:
print e * i
cFactors.append(e)
cFactors.append(i)
e += 1
i = e
else:
print "adding i, " + str(i)
i += 1
if i > a:
print "i > a"
i = e
e += 1
在这个例子中
,在循环e = 1
,i = 1
和a = 2
的开始。 if i > a:
未执行。我已经添加了调试语句,所以我可以找到问题,但i
明显变得比a
多。任何人有任何想法会发生什么?
编辑: 很多答案都说循环编程不正确,因为它在到达if语句之前退出,因为e变得大于a。也许我说错了。它只能循环几次才能无限循环。这是当我使用调试语句运行它时发生的情况。
loop
1 = e
1 = i
2 = a
adding i, 1
loop
1 = e
2 = i
2 = a
adding i, 2
loop
1 = e
3 = i
2 = a
adding i, 3
loop
1 = e
4 = i
2 = a
adding i, 4
对不起,任何的困惑,但它不是循环退出之前,它的声明。我没忘记提及if e * i == a:在早期不能正常运行。
e = 1,i = 1,e * i = 1 a = 2,否则设置i = 2 a = 2所以我不是> – sabbahillel
这似乎是我犯了一个愚蠢的错误,从字符串到输入的整数。 – SamH