黑马程序员技术交流社区

标题: for循环语句中的i++和++i有什么区别 [打印本页]

作者: zhou_xingyu    时间: 2015-8-6 10:19
标题: for循环语句中的i++和++i有什么区别
我知道++i和i++的区别在于执行+的前后顺序不一样,我现在想知道的是;在for循环中这两种表达是否也不同。如:区分 for(int i=0;i<5;i++)和for(int i=0;i<5;++i)这两种表达式的结果是否一样?我倒是认为是一样,至少从程序运行的结果来说,是一样的。不知道我的想法正不正确?
作者: small_horse    时间: 2015-8-6 11:21
我也觉得结果是一样的,都是输出一个结果后,i 加1,再进入循环
作者: 流浪之子    时间: 2015-8-6 11:40
++i,是i先自增1,然后再参与运算,i++,是先参与运算,然后i在自增1,
作者: 流浪之子    时间: 2015-8-6 11:42
区分 for(int i=0;i<5;i++)和for(int i=0;i<5;++i)这两种表达式的结果是一样的,因为i++,和++i都独立存在
作者: wowthe1st    时间: 2015-8-6 11:47
在这里肯定是一样的啊,++后语句就结束的话,那先加后加没区别

作者: flywithde    时间: 2015-8-6 12:25
首先++i 和i++都是一个表达式,i是一个变量;这两个式子都会让i加一,但是表达式的值是不同的,如果赋值语句先遇到的是i则表达式的值就是i的值减去1(i的值是已经自加过了的值),否则则i的值。
作者: bianning888    时间: 2015-8-6 12:39
你这里用的时候是一样的,但是你要把每次i的值打印出来,你打印位置不同会出来不一样的i值
作者: 895928691    时间: 2015-8-6 18:27
主要作用还是用来看i的值和i++的值
作者: Maruka    时间: 2015-8-6 19:23
本题中一样。
作者: WPeng    时间: 2015-8-6 22:30
咋这个位置时一样的
作者: noway190    时间: 2015-8-6 22:36
在独立执行的时候,只涉及到i值时,是一样的吧
作者: QQ2544    时间: 2015-8-6 23:07
在这个for语句的这个位置上,应该不影响程序的结果
作者: liusuizuoyou    时间: 2015-8-6 23:16
i 的前后没有其他的运算  所以  ++ 在前 或在后   运算结果都一样
作者: liusuizuoyou    时间: 2015-8-6 23:16
i 的前后没有其他的运算  所以  ++ 在前 或在后   运算结果都一样
作者: xiaoshui    时间: 2015-8-6 23:17
要判断一下自增、自减语句是否结束
作者: tt3tt3tt    时间: 2015-8-6 23:26
i++是运行完这条语言再自加,++i是先加再运行
作者: 庞佳星    时间: 2015-8-7 09:37
视频里有!!!好好看下
作者: qq64694219    时间: 2015-8-7 15:40
独立的句子同样都是自加 ,但其根本还是不同的  i++    先使用 再自增。 比如 a= i++   a=i  然后 再++
而++i 是 就是 i+1   a=++i 就是,先自增,然后把值赋给a
作者: m小怪兽    时间: 2015-8-7 21:40
多看视频啊,视频里讲得很清楚
作者: fersh    时间: 2015-8-7 22:00
在这里确实没啥区别
作者: 魏武    时间: 2015-8-7 23:00
在for中是没区别的,在别的地方,i++是先运算再自加,++i是先自加再运算!
作者: 第一梦    时间: 2015-8-8 00:24
for循环里边的i++和++i是完全一样的,你的想法很正确。这点我可以保证。如果实在是要鸡蛋里头挑骨头的话,也有点区别,++i在速度上会比i++快一点,就快一点点,理由的话,i++会在内存上申请一个临时变量,保存i+1的值然后赋值给i,而++i没有赋值操作(这是课外话,快这一点完全可以忽略不计了,哈)。
作者: STARlove    时间: 2015-8-8 09:33

++i,是i先自增1,然后再参与运算,i++,是先参与运算,然后i在自增1,

区分 for(int i=0;i<5;i++)和for(int i=0;i<5;++i)这两种表达式的结果是一样的,因为i++,和++i都独立存在




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2