BlackWhite_idea 发表于 2021-12-25 21:00:07

在循环中i+2和i+=2的区别?

比如在for循环里

for(i=1;i<n;i+2) 和 for(i=1;i<n;i+=2) 不一样是在原有的基础上+2吗?

小亦003 发表于 2021-12-25 21:06:06

本帖最后由 小亦003 于 2021-12-25 21:07 编辑

for(i=1;i<n;i+2) 中的是 i + 2 = 1 + 2=3
for(i=1;i<n;i+=2)中的 i +=2 就相当于 i = i + 2,这里的条件是随 i 的增加而增加的,而不是在原有的基础上+2。

jackz007 发表于 2021-12-25 21:06:59

本帖最后由 jackz007 于 2021-12-25 21:10 编辑

for(i=1;i<n;i+2)
       这个代码作为循环变量的 i 在循环中得不到任何改变,i < n 的循环条件永远成立,循环没有可预期的终点,是典型的死循环,这种写法是错误的。
for(i=1 ; i<n ; i+= 2)
       i += 2 是 i = i + 2 的简写形式,在循环中,循环变量 i 的值会逐渐趋近于 n,循环带有可以预期的终点,这种写法是正确的。

小亦003 发表于 2021-12-25 21:12:36

听3楼大佬的{:10_257:}

BlackWhite_idea 发表于 2021-12-25 21:22:35

jackz007 发表于 2021-12-25 21:06
这个代码作为循环变量的 i 在循环中得不到任何改变,i < n 的循环条件永远成立,循环没有可预期的 ...

如果i+2的话i就一直是3是吗?

jackz007 发表于 2021-12-25 21:55:04

BlackWhite_idea 发表于 2021-12-25 21:22
如果i+2的话i就一直是3是吗?

是的,i + 2 不带赋值效果,要赋值,必须要带等号。

BlackWhite_idea 发表于 2021-12-25 21:56:23

jackz007 发表于 2021-12-25 21:55
是的,i + 2 不带赋值效果,要赋值,必须要带等号。

我悟了,谢谢大佬!!!{:10_254:}
页: [1]
查看完整版本: 在循环中i+2和i+=2的区别?