社区
新手乐园
帖子详情
for(i=0;i<3;++i)和for(i=0;i<3;i++)输出的i值怎么没区别?脑子有点乱了。
ln6twf
2009-06-22 05:15:05
在我的理解前面的输出值是:1,2。
后面是:0,1,2.
但实际值都是:0,1,2.
乱了,有点乱。
...全文
1641
91
打赏
收藏
for(i=0;i<3;++i)和for(i=0;i<3;i++)输出的i值怎么没区别?脑子有点乱了。
在我的理解前面的输出值是:1,2。 后面是:0,1,2. 但实际值都是:0,1,2. 乱了,有点乱。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
91 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fiveyes
2009-08-03
打赏
举报
回复
#include <iostream.h>
int main()
{
int k=0;
for(int i=0;i<3;k=(i++)*2) //换成++i,就会看到区别了
cout << k << endl;
return 0;
}
cmf41013
2009-08-01
打赏
举报
回复
没有认真看书
密斯刘
2009-08-01
打赏
举报
回复
一样的结果 for循环我一般都是写i++的
zhoutt1989
2009-08-01
打赏
举报
回复
[Quote=引用 3 楼 arong1234 的回复:]
为什么前面会是12?进循环首先执行第一个子句,然后执行中间子句,然后执行循环体,然后再执行++i,根本不会出现你所谓的++i/i++会影响整个循环的问题,++i/i++的顺序问题只影响for的第三个子句,不影响整个循环
[/Quote]
同意
「已注销」
2009-07-31
打赏
举报
回复
012 012
Lawrencewt
2009-07-30
打赏
举报
回复
for的执行过程
1:i=0
2:判断i <3,为真转3,为假转6
3:循环体...
4:i=i+1;
5:转2
6:出循环...
正解.........................................................................
王夸父
2009-07-27
打赏
举报
回复
因为你的printf("%d",i);是在++i;前面执行的for(i=0;i<3;++i)的执行顺序是i=0;然后判断i<3;满足则执行{。。。。}里面的语句,最后执行++i;故你的输出结果和i++的结果一样。
Cloud__Apex
2009-07-27
打赏
举报
回复
++i 和 i++ 要明白是什么意思啊 ,循环里面的 ++i 和 i++ 其结果都是 多加了1而已
shark1682003
2009-07-27
打赏
举报
回复
赞成四楼的回答,应该明白for循环的执行顺序
chjsatan
2009-07-27
打赏
举报
回复
不显示删除回复显示所有回复显示星级回复显示得分回复 for(i=0;i<3;++i)和for(i=0;i<3;i++)中的++i和i++只是i变量什么时候用到的问题而已 ++i的是这个式子的变量先用 在相加 i++的是i的先用在相加改变了i++的值
i=0,++i;的时候++i先把值传给前面的变量再i加1的 所以式子的值是0而i是1
而i=0,i++;中 i是先加1在把值传给式子i++,所以式子是1而式子是1
似乎是这么回事的 好久没有接触这个东西了 祝你愉快
amossavez
2009-07-26
打赏
举报
回复
是选执行循环体,在执行第三个子句的!没区别
xixuer_20070803
2009-07-26
打赏
举报
回复
一点区别都没;
这是他们单独作为一个语句,得到的结果每次一样,对循环没有任何影响 ;
如果是把他们的结果赋值的话会有差一个的区别,应用不在这里
neverfailor
2009-07-25
打赏
举报
回复
单独使用的话
++i和i++是没有区别的!
十八道胡同
2009-07-25
打赏
举报
回复
对于单个句子
i++;++i;是没有区别的
有区别的在于
b=i++;
b=++i;这种的
stuqbx
2009-07-24
打赏
举报
回复
不好意思写错了!
第一次循环执行完输出0 第二次输出1 第三次输出2
stuqbx
2009-07-24
打赏
举报
回复
for(i=0;i <3;
/*1.先执行这两句*/
++i
/*3.最后在执行这句*/
)
{
cout < <i < <endl;
/*2.再执行这句*/
}
//第一次循环执行完输出0 第二次输出2 第三次输出3
同理,
for(i=0;i <3;
/*1.先执行这两句*/
i++
/*3.最后在执行这句*/
)
{
cout < <i < <endl;
/*2.再执行这句*/
}
//第一次循环执行完输出0 第二次输出2 第三次输出3
stuqbx
2009-07-24
打赏
举报
回复
for(i=0;i <3;
/*1.先执行这两句*/
++i
/*3.最后在执行这句*/
)
{
cout < <i < <endl;
/*2.再执行这句*/
}
//第一次循环执行完输出0 第二次输出2 第三次输出3
同理,
for(i=0;i <3;
/*1.先执行这两句*/
i++
/*3.最后在执行这句*/
)
{
cout < <i < <endl;
/*2.再执行这句*/
}
//第一次循环执行完输出0 第二次输出2 第三次输出3
kellyschurz
2009-07-24
打赏
举报
回复
15楼是正确的!
Angleyuhj
2009-07-23
打赏
举报
回复
输出时机的问题……
jackyloncoln
2009-07-23
打赏
举报
回复
for(i=0;i <3;i++)
{
cout < <i < <endl;
}
for(i=0;i <3;)
{
cout < <i < <endl;
i++;
}
上面两个for语句的输出是一样的。
加载更多回复(71)
for(i=0;i<5;i
++
)与for(i=0;i<=5;i
++
)
区别
for(i=0;i<5;i
++
); printf("%d",i); return 0; }
输出
为5. i=4时4<5成立,i
++
得5; 此时i=5<5为false,退出循环 #include<stdio.h> int main() { int i; for(i=0;i<=5;i
++
); printf("%d",i...
for(var i=1;i<=3;i
++
){ setTimeout(function(){ console.log(i); },0); };答案:4 4 4。
1 for(var i=1;i<=3;i
++
){ 2 setTimeout(function(){ 3 console.log(i); 4 },0); 5 }; 6 7 //答案:4 4 4。 很多初学者,可能会以为答案会是:1 2 3,但仔细研究,你会发现这道题涉及了异步、作用域...
for循环详解
代码1: int i = 0;...
输出
结果 i= 0 i = i
++
; 这句首先取i
++
运行前的
值
就是0, 然后做i
++
操作i变成1, 最后把第一步的0赋给i就是i=0 代码2: int i = 0; for(int i = 0; i < 100; i
++
){ i =
for(var i=0;i<=3;i
++
){ setTimeout(function() { console.log(i) }, 10);}
https://www.jianshu.com/p/837f599a29e6 https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/43
在Java中for循环的
++
i与i
++
问题
for (i = 0, j = 0; i &amp;lt; 2, j &amp;lt; 2; i
++
,
++
j) { printf(&quot;i = %d &quot;, i); printf(&quot;j = %d\n&quot;, j); } printf(&
新手乐园
33,319
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章