循环else,break使用实例

本文通过实例讲解了Python中循环结构中else子句的使用,以及结合break语句如何正确判断素数。当内层循环因满足条件执行break退出时,else子句不会执行;只有完整遍历内层循环未触发break时,才会执行else子句,展示其在素数检测等场景的应用。

缺少break的程序语句及输出——

for n in range(2,10):
    for x in range(2,n):
        if n%x ==0:
            print(n,"equals",x,"*",n//x)
    else:
        print(n,"is a prime number")

输出为:

2 is a prime number
3 is a prime number
4 equals 2 * 2
4 is a prime number
5 is a prime number
6 equals 2 * 3
6 equals 3 * 2
6 is a prime number
7 is a prime number
8 equals 2 * 4
8 equals 4 * 2
8 is a prime number
9 equals 3 * 3
9 is a prime number

执行:

for n in range(2,10):
    for x in range(2,n):

n=2,x in range(2,2)

注意:此时语句不会被执行

 只有括号里的形成有数区间(a,b)_b>a才可以执行

所以,此时语句执行else,打印2 is a prime number;

接下来,n=3,x=2,if语句不满足条件,执行else语句,打印3 is a prime number;

接下来,n=4,x=2时,符合if条件语句,执行if语句,打印4 equals 2 * 2,

n=4,x=3时,不符合if语句,打印4 is a prime number;(有误)

因此,加上break,跳出循环的逻辑正确语句为:

for n in range(2,10):
    for x in range(2,n):
        if n%x ==0:
            print(n,"equals",x,"*",n//x)
            break
    else:
        print(n,"is a prime number")

输出为:

2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

在n=4,x=2时,符合if条件语句,执行if语句,打印4 equals 2 * 2,同时,此时接break语句,跳出内循环,执行for n in range(2,10):语句

继续n=5,x=2;n=5,x=3;n=5,x=4;发现都不符合,执行else语句。

只有在内层循环没有被break打断的情况下,且循环列表遍历完成后,才会执行else语句。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值