Why Is This Python While Loop Not Ending?
I am wondering why this code seems to loop infinitely? The logic, while not False = while True, and this True is referring to 100 < 0 which is false, hence it should execute the
Solution 1:
a while
statement should be proceeded with a conditional. The conditional True
(or in your cause not False
) always evaluates to True
so the loop never ends.
the if
block is never executed because because num < 0
never evaluates to True
. Did you mean to decrement num by 1 in each iteration of the while
block? If so, add a num = num - 1
within the while
block:
num = 100whilenotFalse:
if num < 0:
break
num = num - 1print('num is: ' + str(num))
Solution 2:
Your print
statement is outside the while loop. You have to use an else
clause with the if
.
num = 100whilenotFalse:
if num < 0:
breakelse:
print('num is: ' + str(num))
# Do something with num to decrease it, else it will stay a forever loop.
Solution 3:
Short answer: Since the following is not true, the contents of your if
clause will not be evaluated, hence the break
is not performed.
ifnum<0:
All that is really running is the following:
num = 100while not False:
if num < 0: #False#what is here is unimportant, since it will never run anyway.
...or to simplify it "all the way", this is what you're doing:
whiletrue:
iffalse:
break
Post a Comment for "Why Is This Python While Loop Not Ending?"