鱼C论坛

 找回密码
 立即注册
查看: 1666|回复: 6

[已解决]for循环和continue问题求助!!

[复制链接]
发表于 2020-3-12 20:41:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
for i in range(10):
    if i % 2 != 0:
        print(i)
        continue
    i += 2
    print(i)


结果:
2
1
4
3
6
5
8
7
10
9

请问这个结果是怎么来的,非常感谢!!!
最佳答案
2020-3-13 14:11:43
在python语言中,for循环后面用range函数生成一个遍历序列,该遍历序列一旦生成,不会再改变,会对该序列进行遍历。这一点和其他编程语言是不一样的,若有其他语言的编程基础,需要特别留意这一点。
对于这段程序,for i in range(10)会生成一个序列[0,1,2,3,4,5,6,7,8,9],不管下面程序中对i进行什么操作(例如:i += 2),都会对已生成的序列进行遍历。
弄明白这一点之后,接下来就简单了。
i=0,不符合if条件,跳到后面加2,打印输出结果是:2;
i=1,符合if条件,打印输出结果是:1,然后continue跳出本次循环;
i=2,不符合if条件,跳到后面加2,打印输出结果是:4;
i=3,符合if条件,打印输出结果是:3,然后continue跳出本次循环;
i=4,不符合if条件,跳到后面加2,打印输出结果是:6;
i=5,符合if条件,打印输出结果是:5,然后continue跳出本次循环;
i=6,不符合if条件,跳到后面加2,打印输出结果是:8;
i=7,符合if条件,打印输出结果是:7,然后continue跳出本次循环;
i=8,不符合if条件,跳到后面加2,打印输出结果是:10;
i=9,符合if条件,打印输出结果是:9,然后continue跳出本次循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-12 20:44:54 | 显示全部楼层
走流程。
如果用循环比喻你在走一个圆圈
遇break 就是退出这个圆圈
遇continue 就是回到开始处重新走。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 20:46:59 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-12 20:51 编辑

        改写一下就容易理解些了吧
   
for i in range(10):
    if i % 2 != 0 :
        print(i)
    else:
        print(i + 2)
        在这个循环系统中:
for i in range(10):
. . . . . .
        continue
    i += 2
    print(i)
        continue 的作用就是不执行后面的两句,直接返回 for 语句
    i += 2
    print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 20:50:28 | 显示全部楼层
for i in range(10):
    if i % 2 != 0:    # 当 i 是偶数时:
        print(i)   # 打印 i
        continue  # 当 i 是偶数时,结束当前循环,执行下一轮循环
    i += 2   # i += 2
    print(i)   # 打印 i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 20:57:38 | 显示全部楼层
令i为一整数,范围从0到9(共10个数)并从0开始依次执行以下循环体:
                如果(if)i和2的余数不为0(即i是奇数)
                输出i并继续执行if
        若i是偶数则将i加2后重新赋值给i
        输出i


第一次循环,对0操作,为偶数,加2后输出,2
第二次循环,对1操作,为奇数,直接输出,1,继续判断2
第三次循环,对2操作,为偶数,加2后输出,4......
以此类推就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 00:30:27 | 显示全部楼层
第一次循环,i=0,不符合第一个打印条件,跳到后面加2,打印输出结果是:2;
第二次循环,i=1,符合第一个打印条件,打印输出结果是:1;
第三次循环,i=2,不符合第一个打印条件,跳到后面加2,打印输出结果是:4;
第四次循环,i=3,符合第一个打印条件,打印输出结果是:3;
第五次循环,i=4,不符合第一个打印条件,跳到后面加2,打印输出结果是:6;
第六次循环,i=5,符合第一个打印条件,打印输出结果是:5;
第七次循环,i=6,不符合第一个打印条件,跳到后面加2,打印输出结果是:8;
第八次循环,i=7,符合第一个打印条件,打印输出结果是:7;
第九次循环,i=8,不符合第一个打印条件,跳到后面加2,打印输出结果是:10;
第十次循环,i=9,符合第一个打印条件,打印输出结果是:9.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-13 14:11:43 | 显示全部楼层    本楼为最佳答案   
在python语言中,for循环后面用range函数生成一个遍历序列,该遍历序列一旦生成,不会再改变,会对该序列进行遍历。这一点和其他编程语言是不一样的,若有其他语言的编程基础,需要特别留意这一点。
对于这段程序,for i in range(10)会生成一个序列[0,1,2,3,4,5,6,7,8,9],不管下面程序中对i进行什么操作(例如:i += 2),都会对已生成的序列进行遍历。
弄明白这一点之后,接下来就简单了。
i=0,不符合if条件,跳到后面加2,打印输出结果是:2;
i=1,符合if条件,打印输出结果是:1,然后continue跳出本次循环;
i=2,不符合if条件,跳到后面加2,打印输出结果是:4;
i=3,符合if条件,打印输出结果是:3,然后continue跳出本次循环;
i=4,不符合if条件,跳到后面加2,打印输出结果是:6;
i=5,符合if条件,打印输出结果是:5,然后continue跳出本次循环;
i=6,不符合if条件,跳到后面加2,打印输出结果是:8;
i=7,符合if条件,打印输出结果是:7,然后continue跳出本次循环;
i=8,不符合if条件,跳到后面加2,打印输出结果是:10;
i=9,符合if条件,打印输出结果是:9,然后continue跳出本次循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 18:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表