为什么这个While循环没有中断或停止
我添加了一些输出屏幕截图
term = 0
i = 13
while True:
print i > 1
print "i = ",i
if i == 1:
term += 1
break
if i%2 == 0:
i = i / 2
term += 1
if i%2 != 0:
i = i * 3 + 1
term += 1
我也尝试过这种方式
term = 1
i = 13
while i > 1:
print i > 1
if i%2 == 0:
i = i / 2
term += 1
if i%2 != 0:
i = i * 3 + 1
term += 1
使用elif
,使案件相互排斥。您不希望if
在同一循环迭代中执行多个语句。
if i%2 == 0:
i = i / 2
term += 1
elif i%2 != 0:
i = i * 3 + 1
term += 1
或者else
因为第二个条件是多余的而这样做。
if i%2 == 0:
i = i / 2
term += 1
else:
i = i * 3 + 1
term += 1
它在2
和之间摆动的原因4
是因为2
这两个if
语句都运行。2
即使是这样的第一个运行和半i
,使它1
。现在很奇怪,第二个触发了,1
变成4
。
if i%2 == 0:
i = i / 2 # 2 --> 1
term += 1
if i%2 != 0:
i = i * 3 + 1 # 1 --> 4
term += 1
下一个迭代4
变为2
。
if i%2 == 0:
i = i / 2 # 4 --> 2
term += 1
这两个迭代会不断循环重复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句