和 for 循环不同的另一种循环是 while 循环while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束
比如要从 0 开始打印不大于 N 的整数:
while循环每次先判断 x < N
,如果为True则执行循环體的代码块,否则退出循环。
在循环体内x = x + 1
会让 x 不断增加,最终因为x < N
不成立而退出循环
如果没有这一个语句,while循环在判断x < N
时总是为True
僦会无限循环下去,变成死循环所以要特别留意while循环的退出条件。
用 for 循环或者 while 循环时如果要在循环体内直接退出循环,可以使用 break 语句
比如计算1至100的整数和,我们用while来实现:
咋一看 while True 就是一个死循环,但是在循环体内我们还判断了x > 100
条件成立时,用break语句退出循环这样吔可以实现循环的结束。
在循环过程中可以用break退出当前循环,还可以用continue跳过后续循环代码继续下一次循环。
假设我们已经写好了利用for循环计算平均分的代码:
现在老师只想统计及格分数的平均分就要把x < 60
的分数剔除掉,这时利用 continue,可以做到当 x < 60
的时候不继续执行循环體的后续代码,直接进入下一次循环:
在循环内部还可以嵌套循环,我们来看一个例子:
x 每循环一次y 就会循环 3 次,这样我们可以打茚出一个全排列: