鱼C论坛

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

一脸萌比求助

[复制链接]
发表于 2017-12-21 22:00:40 | 显示全部楼层 |阅读模式

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

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

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

甲鱼这个编程我没看懂逻辑,i+=2和print(i)前面为什么不加else,if分支如果只有两个分支且把第二个分支取消缩进和if平行,就默认为else?

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

这是我写的,符合自己的理解,加上了else,运行结果是一样的,请问对不对?有没有什么问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-21 22:02:34 | 显示全部楼层
追加问题
for i in range(10):
    if i%2 !=0:
        print(i)
        
    else:
        i+=2
        print(i)
这样直接把continue去掉也可以啊,continue有什么意义?还是说例子举得不恰当?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-21 22:05:54 | 显示全部楼层
how31511 发表于 2017-12-21 22:02
追加问题
for i in range(10):
    if i%2 !=0:

继续追加:
if和else存在的时候,如果满足if条件,else语句操作不是本来就跳过的吗?何必用continue跳过呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-21 22:14:30 From FishC Mobile | 显示全部楼层
正是因为没用else才用的continue语句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-22 08:54:58 | 显示全部楼层
并不是默认else,只是函数的运行是自上而下的一行一行读取的,当if语句已经运行完毕之后自动继续后面的语句,如果if语句没有完毕,比如一直在循环,再或者说if里面有个return,那函数就结束了不会运行后面的语句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-22 09:24:02 | 显示全部楼层
有一点区别,用continue 直接进入下一次循环,跳过后面的判断,用else: 或者elif 也能达到同样效果,只是写程序的位置不同。获得结果一样。用电饭煲煮饭和高压锅煮饭,只是实现的过程不同而已,结果一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-22 09:26:56 | 显示全部楼层
这里不是默认的else,甚至和else没关系,是因为使用了continue语句,当执行到这一语句的时候,自动跳出本轮循环,i+1继续循环,if不满足的时候才会执行和if并列的i+2,print语句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-26 16:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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