2013-11-27 1 views
-1

Этот цикл while дает мне проблемы, так как он просто не остановится. Я пытаюсь обновить elem, чтобы в конечном итоге быть больше, чем char, используя показатель степени i, но этого просто не происходит и интересно, были ли какие-либо решения.Почему мой цикл while бесконечен

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

'elem' и' char' никогда не меняется в цикле, так что 'элем lurker

+0

Также, первый проход, elem поднят до 0 мощности. Даже если вы присвоили значение элементу, оно станет 1, и последующие итерации будут повышать 1^i, что никогда не будет превышать 1 для любого положительного значения i. – JosephStyons

ответ

2

Проблема заключается в том, что вы не меняете значение elem, вы просто повторно вычисления elem**i, поэтому, когда вы сравните elem с char всегда тот же результат. Самое простое решение - сравнить elem**i с char.

вероятно Вы имели в виду:

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

Вы умножении на переменную с нулевым значением