Python循环代码无限打印1、2、3、3...的原因咨询
Python循环代码无限打印1、2、3、3...的原因咨询
嗨,刚接触Python遇到这种问题太正常啦,我来给你拆解下这段代码的执行逻辑,看完你就秒懂为啥会无限打印3了~
先看你贴的这段代码:
i=1 while i<6: print(i) if i == 3: continue i=i+1
我们一步步走一遍执行流程:
- 初始
i=1,满足i<6的循环条件,进入循环:打印1,此时i不等于3,执行i=i+1,i变成2; - 接下来
i=2,满足循环条件,进入循环:打印2,i不等于3,执行i=i+1,i变成3; - 现在
i=3,满足循环条件,进入循环:打印3,这时候触发了if i ==3的条件,执行continue——划重点!continue的作用是直接跳过循环体里剩下的所有代码,回到循环开头重新判断条件,所以后面的i=i+1这行完全没机会执行!
这就导致i的值一直卡着3不动,循环条件i<6永远成立,循环会一直重复打印3,根本停不下来~
如果想让循环正常结束,你只需要在执行continue之前先把i自增,或者调整代码结构,比如:
i=1 while i<6: print(i) if i == 3: i += 1 # 先让i自增,再跳过后续代码 continue i += 1
当然更简洁的方式是直接去掉这个没必要的continue,让i正常自增就行。
备注:内容来源于stack exchange,提问作者Vinayak K
相关产品推荐
相关产品推荐

