你之所以不理解输出结果,我认为主要原因是你不是很理解for循环的运行机制,这个在课程中讲的也不知很突出。我来向你解释一下关键点你就明白了。
此程序中有两个关键点,
第一,for循环,在开始执行的时候,会根据条件生成一个迭代器,而且此迭代器一旦生成则会执行下去,不受条件中变量变化的影响。
第二,循环的中断和中止,continue中断循环,即在for循环体内执行过程中跳出本次循环,执行下一次循环,break中止循环,即在循环体执行过程中立即跳出本循环,之后的循环也不再执行。注意注意:continue和break。只对一层循环有效!只对一层循环有效!只对一层循环有效!(重要的话说三遍!!!)多层循环的情况下,也只是跳出本层循环。
这样说,你可能不太懂,举个例子。我们以这个程序为例,在进入for循环的时候生成迭代器,循环体部分程序共执行十次,执行的时候i的值分别为[0,1,2,3,4,5,6,7,8,9],在一次循环过程中,i的值可能会被语句(i+=2)修改,但是不影响下一次循环。例如第一次循环的时候,i=0,进入循环,先执行if语句,不符合条件,然后执行语句i+=2,此时i=2,最后执行print语句输出,第一次循环执行完成,之后执行第二次循环,第二次循环时,i=1,不是2,也不是3,进入循环先执行if语句,符合条件,执行print语句输出i,然后执行continue跳出本次循环,第二次循环执行完成,之后执行第三次循环……