鱼C论坛

 找回密码
 立即注册
查看: 1080|回复: 12

for循环

[复制链接]
发表于 2018-2-27 17:18:46 | 显示全部楼层 |阅读模式

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

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

x
课本28页的for循环是怎么循环的?当i=0的时候是输出2,但是当i=1时返回起点,那新一轮的i还是用1吗?其余的2,3,4,5,等等的怎么办
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-27 17:24:19 | 显示全部楼层
for循环中的i改变不会影响下一次循环i的值,请执行以下代码进行理解:
for i in range(5):
      print("每次循环时,i =",i)
      i += 2
      print("本次循环修改了i的值,i =",i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-27 20:50:28 | 显示全部楼层
BngThea 发表于 2018-2-27 17:24
for循环中的i改变不会影响下一次循环i的值,请执行以下代码进行理解:
for i in range(5):
      print(" ...

range(5)不是0到4吗?那这个for循环每次循环的i都是多少呢?求教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-27 20:51:45 | 显示全部楼层
BngThea 发表于 2018-2-27 17:24
for循环中的i改变不会影响下一次循环i的值,请执行以下代码进行理解:
for i in range(5):
      print(" ...

不好意思 初学者 ,不太理解这么深奥的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-27 21:17:11 | 显示全部楼层
你贴个具体代码出来好解释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-27 22:29:14 | 显示全部楼层
书本第28页是讲continue循环的那个吗? 是有点抽象,刚开始读的时候我也不理解,回头再去看才明白。

首先明确continue的作用,当代码执行到continue的时候,他不在执行下面的语句,返回循环的初使,并开始运行程序。(此例中为for循环)

枚举:
当 i=0,i % 2 == 0, 故跳过if语句, 执行 i+=2, 所以第一个值为2;
当 i=1,I % 2 != 0, 故执行if之后的分支,直接输出 i,值为1;
当 i=2,值为4
。。。。。。。

因为刚开始学习语句,可能很混乱,将代码稍加改良方便理解,楼主可以自己尝试:
  1. for i in range(10):
  2.     if i % 2 != 0:
  3.         print(i,end = ', ') #这里我只是希望输出的结果排成一行
  4.         continue #程序运行到这里,会返回到第一句,for语句
  5.     print('x', end = ', ')
  6.     #修改这里的代码,防止混淆。
复制代码


运行结果为:
  1. x, 1, x, 3, x, 5, x, 7, x, 9,
  2. >>>
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2018-2-27 22:50:34 | 显示全部楼层
continue 中文翻译为继续,意思就是说,当一个循环的下面有continue的时候,该循环将不会再向下执行。
如果是for循环,将会从下一个获得的值开始重新判断,就像上面的if i % 2 == 0 当为偶数的时候,continue
重新执行本次循环,i 的值做+1后继续判断,
如果是while循环,将会重新重新开始判断表达式是否为真,当为真时继续执行程序,反之退出。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 10:29:26 | 显示全部楼层
linzhengren90 发表于 2018-2-27 22:29
书本第28页是讲continue循环的那个吗? 是有点抽象,刚开始读的时候我也不理解,回头再去看才明白。

首 ...

for i in range(10)这个for循环就是将0-9都拿出来走一遍是这个意思吗?就是不太懂for循环是怎么循环的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 10:32:13 | 显示全部楼层
只会写BUG 发表于 2018-2-27 22:50
continue 中文翻译为继续,意思就是说,当一个循环的下面有continue的时候,该循环将不会再向下执行。
如 ...

for i in range(10)这个for循环就是将0-9都拿出来走一遍是这个意思吗?就是不太懂for循环是怎么循环的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 10:40:39 | 显示全部楼层
只会写BUG 发表于 2018-2-27 22:50
continue 中文翻译为继续,意思就是说,当一个循环的下面有continue的时候,该循环将不会再向下执行。
如 ...

for i in range(10):
    if i % 2 != 0:
        print(i)
        continue
i+=2
print(i)
这个程序当i=0的时候输出的是2,不应该是直接跳出循环了吗?没有执行continue,但是为什么还要执行i=1,2....的呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 19:51:47 | 显示全部楼层
wangyanwen 发表于 2018-2-28 10:29
for i in range(10)这个for循环就是将0-9都拿出来走一遍是这个意思吗?就是不太懂for循环是怎么循环的 ...

是的,从0到9,不包含10.

电脑计数,0是起始数,range(10) 代表总数有10个,所以数10个数是0到9.

range(10) 也可以看成 range(0:10),从零到十,包含0,不包含10.很好记的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 19:53:06 | 显示全部楼层
linzhengren90 发表于 2018-2-28 19:51
是的,从0到9,不包含10.

电脑计数,0是起始数,range(10) 代表总数有10个,所以数10个数是0到9.

对不起,写错了

range(10) 也可以看成 range(0,10)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 22:54:26 | 显示全部楼层
wangyanwen 发表于 2018-2-28 10:40
for i in range(10):
    if i % 2 != 0:
        print(i)

跳出循环是break ,continue 是跳过后面的过程,直接开始下一次循环,当 i 为零 的时候0对2取余等于0,而根据程序不会打印 然后 i 会重新取值 1,来判断是否满足if条件
1 对 2 取余 为 1 然后会print(1)
2 对 2 取余 为 0 不会 进入到 if 里面
......
当最后 i 取值为9 后 for 循环结束
执行下面的 i += 2
打印出来 11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 16:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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