2013-11-27 135 views
-1

这个while循环给了我麻烦,因为它不会停止,我试图更新elem,最终通过使用指数我更大,然后char,但是这根本不会发生,并且是想知道是否有任何解决方案。为什么我的循环无限

i = 0 
char = 20 
elem = 2 
while elem < char: 
    elem**i 
    i += 1 
+0

'elem'和'char'在循环永远不会改变,所以'ELEM lurker

+0

另外,第一次过关,elem被提升到0次方。即使你将值赋给elem,它也会变成1,随后的迭代会增加1^i,对于i的任何正值,这将不会超过1。 – JosephStyons

回答

2

的问题是,你不改变elem的价值,你只是重复计算elem**i,所以当你比较elemchar总是相同的结果。最简单的解决方案是比较elem**ichar

你大概的意思是:

while elem**i < char: 
    i += 1