A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Manli123 中级黑马   /  2015-12-26 17:42  /  2198 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

i++与++i主要有哪些区别,在for循环,使用哪个效率更高,更合理

14 个回复

倒序浏览
在计算中会有很大的差别!在FOR循环中这两个没啥区别,就看使用的习惯了!这是我的理解!
回复 使用道具 举报
i++相当于,int a, a=i,i=a+1,先返回i的值再加1,而++i,只是i=i+1,直接返回i+1后的值,所以从效率上讲,推荐++i,因为i++要申请一个内存空间,然后将值压入栈中,最后不用还要释放。
回复 使用道具 举报
这个。。。那倒不是看具体的功能来选择的么?循环自己的逻辑需要哪个就用哪个喽
回复 使用道具 举报
通常我们在编写需要for循环实现的程序时有两种实现方法:

1. for(int i = 0;i<arr.length;i++)

2. for(int i = arr.length-1;i>=0;i--)

通过效率上的比较方案二要好于方案一。

个人认为他们的差异主要是在方案一每次是和一个大数做比较,而方案二是和零做比较。
计算机在处理这两种时做的是减法,处理起来方案二比较快。

以上是个人认为,放到这和大家共同讨论。
回复 使用道具 举报
除非特别,要不然一般是i++
回复 使用道具 举报
huqianqian 发表于 2015-12-26 18:21
在计算中会有很大的差别!在FOR循环中这两个没啥区别,就看使用的习惯了!这是我的理解! ...

哦,但我记得以前老师说过,其中一种更好
回复 使用道具 举报
野火 发表于 2015-12-26 18:52
i++相当于,int a, a=i,i=a+1,先返回i的值再加1,而++i,只是i=i+1,直接返回i+1后的值,所以从效率上讲, ...

好像是这么一回事
回复 使用道具 举报
hmpx_ljj 发表于 2015-12-27 14:29
通常我们在编写需要for循环实现的程序时有两种实现方法:

1. for(int i = 0;i=0;i--)

这个应该一样,和0比较,和大数比较,都是与32位的0,1做比较,所以是一样的
回复 使用道具 举报
木叶 发表于 2015-12-27 19:06
除非特别,要不然一般是i++

这个是比较常见
回复 使用道具 举报
Manli123 发表于 2015-12-27 21:41
哦,但我记得以前老师说过,其中一种更好

奥澳,在大学学校里我们写for循环都用的i++;
回复 使用道具 举报
kegao 来自手机 中级黑马 2015-12-28 12:25:53
12#
,i=a+1,先返回i的值再加1,而++i,只是i=i+1,直接返回i+1后的值,所以从效率上讲, ...
回复 使用道具 举报
大明 中级黑马 2015-12-28 21:32:47
13#
一个是先加一,一个是先提取表达式
回复 使用道具 举报
i++ 是先使用在变化。 比如a = 3 第一次使用的数据就是3 然后输出的时候才会变化4
++i 是先变化再使用。         a=3  第一次使用的数值就是4 输出的时候也是4
回复 使用道具 举报
i++是加前取值 ++i是加后取值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马