我想知道为什么这段代码似乎无限循环吗?逻辑while not False = while True
和True表示错误的100 < 0
,因此应改为执行print语句,对吗?为什么它会卡在循环中?。
num = 100
while not False:
if num < 0:
break
print('num is: ' + str(num))
答案 0 :(得分:0)
您的print
语句在while循环之外。您必须在else
中使用if
子句。
num = 100
while not False:
if num < 0:
break
else:
print('num is: ' + str(num))
# Do something with num to decrease it, else it will stay a forever loop.
答案 1 :(得分:0)
while
语句应带有条件。有条件的True
(或由于您的原因not False
)总是求值为True
,因此循环永远不会结束。
if
块永远不会执行,因为num < 0
永远不会求值为True
。您是否要在while
块的每次迭代中将num减1?如果是这样,请在num = num - 1
块中添加一个while
:
num = 100
while not False:
if num < 0:
break
num = num - 1
print('num is: ' + str(num))
答案 2 :(得分:0)
简短的回答:由于以下情况不成立,因此不会评估if
子句的内容,因此不会执行break
。
if num < 0:
实际上正在运行的是以下内容:
num = 100
while not False:
if num < 0: #False
#what is here is unimportant, since it will never run anyway.
...或者为了简化它,这就是您正在做的事情:
while true:
if false:
break