鱼C论坛

 找回密码
 立即注册
查看: 1293|回复: 4

[已解决]关于斐波那契和生成器迭代器, 这两种方法为什么计算结果不一样呢?

[复制链接]
发表于 2017-7-24 12:29:19 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼讲的 生成器 迭代器那几页,  a,b = b ,a + b  换成了 a = b  b = a + b ,为什么计算结果不一样呢?
最佳答案
2017-7-24 17:35:02
本帖最后由 shuofxz 于 2017-7-24 17:36 编辑
xiazhianran6 发表于 2017-7-24 17:22
那反过来是不是就对了
b = a+b
a = b


反过来也不对呀
在这个式子中a,b = b ,a + b,a得到的是b一开始的值

下面这样写,a得到的是b计算后的值
  1. b = a+b
  2. a = b
复制代码


非要拆开写的话, 得有一个中间变量才行
  1. temp = a
  2. a = b
  3. b = temp + b
复制代码
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-24 12:35:22 | 显示全部楼层
  1. a,b = b ,a + b
复制代码

这种是a = b  b = a + b同时进行的,也就是说在b=a+b的时候,a还是原来的值

  1. a = b  b = a + b
复制代码

但这样,是顺序执行的,在执行b=a+b的时候,a已经被赋值为另外的值(b)了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-24 17:22:44 | 显示全部楼层
shuofxz 发表于 2017-7-24 12:35
这种是a = b  b = a + b同时进行的,也就是说在b=a+b的时候,a还是原来的值

那反过来是不是就对了
b = a+b
a = b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-24 17:35:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 shuofxz 于 2017-7-24 17:36 编辑
xiazhianran6 发表于 2017-7-24 17:22
那反过来是不是就对了
b = a+b
a = b


反过来也不对呀
在这个式子中a,b = b ,a + b,a得到的是b一开始的值

下面这样写,a得到的是b计算后的值
  1. b = a+b
  2. a = b
复制代码


非要拆开写的话, 得有一个中间变量才行
  1. temp = a
  2. a = b
  3. b = temp + b
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-24 17:35:30 | 显示全部楼层
xiazhianran6 发表于 2017-7-24 17:22
那反过来是不是就对了
b = a+b
a = b

不对,只要写成两行,那么就会出现赋值的先后问题,就错咧。
我认为可以简单一点看作,先把等号右边的全部计算完成以后,再和左边进行赋值操作。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 12:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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