首页 > 编程笔记

Python break和continue(跳出循环)

事实上,循环并非一成不变地重复执行。程序员可通过循环控制语句更有效地运用循环功能,例如,必须让循环提前结束时,可以使用 break 或 continue 语句。

Python break 语句

Python break 语句用来跳出最近的 for、while 循环,并将控制权交给所在块之外的下一行程序。也就是说,break 语句是用来中断目前循环的语句的。

break 语句通常会与 if 条件语句连用,用来设定在某些条件成立时即跳出循环的执行。

由于 break 语句只能跳出本身所在的这一层循环,因此如果遇到嵌套循环,就需要逐层加上 break 语句。

Python break 语句的语法格式如下:

break

例如下面的代码。
for x in range(1, 10):
    if x == 5:
        break
    print( x, end=" ")
输出结果:

1 2 3 4


以下程序示例先设定要存储累加的总数 total 为 0,每执行完一次循环后再将变量 i(i 的初始值为 1)累加 2,计算 1+3+5+7+…+99 的和。当 i 等于 101 时,就利用 break 语句来强制中断 while 循环。

【示例1】break 语句的使用。代码如下:
# break语句的使用示例
total=0
for i in range(1,201,2):
    if i==101:
        break #跳出循环
    total+=i
print("1~99的奇数总和:%d" %total)
输出结果:

1~99的奇数总和:2500

程序解说:
第 3~6 行:执行 for 循环,当 i=101 时,执行 break 语句跳出循环。

【示例2】利用 break 语句来控制九九乘法表的输出,只计算到 7 为止的乘法表。代码如下:
# 九九乘法表的双重循环
for i in range(1,10):
    for j in range (1,10):
        print('{0}*{1}={2:2d}  '.format(i,j,i*j), sep='\t',end='')
        if j>=7:
            break #设定跳出的条件
    print('\n----------------------------------------------------\n')
运行结果:
1*1= 1  1*2= 2  1*3= 3  1*4= 4  1*5= 5  1*6= 6  1*7= 7
----------------------------------------------------

2*1= 2  2*2= 4  2*3= 6  2*4= 8  2*5=10  2*6=12  2*7=14
----------------------------------------------------

3*1= 3  3*2= 6  3*3= 9  3*4=12  3*5=15  3*6=18  3*7=21
----------------------------------------------------

4*1= 4  4*2= 8  4*3=12  4*4=16  4*5=20  4*6=24  4*7=28
----------------------------------------------------

5*1= 5  5*2=10  5*3=15  5*4=20  5*5=25  5*6=30  5*7=35
----------------------------------------------------

6*1= 6  6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  6*7=42
----------------------------------------------------

7*1= 7  7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49
----------------------------------------------------

8*1= 8  8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56
----------------------------------------------------

9*1= 9  9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63
----------------------------------------------------
 程序解说:

Python continue语句

相较于 break 语句用于跳出循环,continue 语句则用于继续下一次循环的执行。也就是说,如果想要终止的不是整个循环,而是想要在某个特定的条件下才终止执行某次的循环,就可使用 continue 语句。

continue 语句只会直接略过底下尚未执行的程序代码,并跳至循环块的开头继续下一个循环,而不会离开循环。

Python continue 语句的语法格式如下:

continue


下面我们用几个示例来说明 continue 语句的应用。

【示例3】continue 语句的使用。代码如下:
for a in range(0,10,1):
    if a==3:
         continue
    print("a=%d" %a)
输出结果:

a=0
a=1
a=2
a=4
a=5
a=6
a=7
a=8
a=9

在这个例子中,我们利用 for 循环来累加 a 的值,当 a 等于 3 的这个条件出现时,我们利用 continue 语句来跳过 “print("a=%d" %a)” 语句的执行,并回到循环开头,继续进行累加 a 及输出 a 值的程序,所以输出的数值中不会有 3。 

【示例4】程序代码如下所示:
for x in range(1, 10):
    if x == 5:
        continue
    print( x, end=" ")
输出结果:

1 2 3 4 6 7 8 9

当 x 等于 5 的时候执行 continue 语句,程序不会继续往下执行,所以没有输出 5,for 循环仍继续执行。

以下程序示例是嵌套 for 循环与 continue 语句的应用示例。

【示例5】当执行到 “b==6” 时,continue 语句会跳过该次循环,并执行下层循环,也就是不会输出 6。Python 代码如下:
#continue练习
for a in range(10): #外层for循环控制y轴输出
    for b in range(a+1): #内层for循环控制x轴输出
        if b==6:
            continue
        print("%d " %b,end='')#输出b的值
    print()
输出结果:

0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5 7
0 1 2 3 4 5 7 8
0 1 2 3 4 5 7 8 9

程序解说:
第 2~7 行:双层嵌套循环,第 4 行的 if 语句用于当 b 的值等于 6 时执行 continue 语句,而跳过第 6 行的 print 输出语句,回到第 2 行的 for 循环继续执行。

优秀文章