
上QQ阅读APP看书,第一时间看更新
3.3 Break, Continue, Pass
学习了三种基本结构,我们已经可以写出一些有趣的程序了,但是Python还有一些控制语句可以让代码更加优美简洁。
3.3.1 Break, Continue
Break和Continue只能用在循环体中,通过一个例子来认识一下作用:

这段代码会输出:

这段循环中如果没有continue和break的话应该是输出1到51的,但是这里输出只有1和3,为什么呢?
首先考虑当i为2的那次循环,它进入了if i==2的代码块中,执行了continue,这次循环就被直接跳过了,也就是说后面的代码包括print(i)都不会再被执行,而是直接进入下一次i=3的循环。
接着考虑当i为4的那次循环,它进入了elif i==4的代码块中,执行了break,直接跳出了循环到最外层,然后接着执行循环后面的代码输出了done。
总结一下,continue的作用是跳过剩下的代码进入下一次循环,break的作用是跳出当前循环然后执行循环后面的代码。
这里有一点需要强调的是,break和continue只能对当前循环起作用,也就是说如果在循环嵌套的情况下想对外层循环起控制作用,需要多个break或者continue联合使用。
3.3.2 Pass
pass很有意思,它的功能就是没有功能。看一个例子:


要想在a>10的时候什么都不执行,但是如果什么都不写的话又不符合Python的缩进要求,为了使得语法上正确,这里使用了pass来作为一个代码块,但是pass本身不会有任何效果。