Python中while循环用continue后输出出现7的原因咨询
为什么while循环会输出7?
问题出在你把i += 1放在了循环体的最开头,导致循环条件的判断和i的递增时机不匹配,具体执行流程如下:
- 初始
i = 0,满足i <=6,进入循环,先执行i +=1,此时i=1,不触发continue,打印1。 i=1满足循环条件,进入循环,i变为2,打印2。i=2满足循环条件,进入循环,i变为3,触发continue,跳过打印,直接回到循环判断。i=3满足循环条件,进入循环,i变为4,打印4。i=4满足循环条件,进入循环,i变为5,打印5。i=5满足循环条件,进入循环,i变为6,打印6。i=6满足循环条件,进入循环,i变为7,此时不触发continue,打印7。之后回到循环判断,7<=6不成立,循环结束。
简单说:循环条件是在每次迭代开始前判断的,当i=6时,i<=6成立,所以会进入这次迭代,先把i加到7再执行打印,这就导致了7被输出。
如果要得到你预期的1、2、4、5、6,可以调整i +=1的位置,修改后的代码如下:
#!/usr/bin/python # -*- coding: utf-8 -*- i = 0 while i <= 6: if i == 3: i +=1 continue print i i += 1
内容的提问来源于stack exchange,提问作者Rakesh Kupendhiran
相关产品推荐
相关产品推荐

