社区
新手乐园
帖子详情
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.
乱了,有点乱。
...全文
1771
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 (var i=1; i<=5; i
++
) 加 setTimeout
输出
1、2、3 、4、5
for (var i=1; i<=5; i
++
) 加 setTimeout 如何
输出
1、2、3 、4、5 大家在笔试或者面试的时候,或多或少都做过这样的题吧! 请问下面代码的
输出
是什么? for (var i=1; i<=5; i
++
) { setTimeout( function timer(){ console.log( i ); }, i*1000 ); } //
输出
6
(int a[][]) //
输出
数组方法 { for(int i=0;i
++) { for(int j=0;j
++)
public class xiti5_6 { public static void Printf(int a[][]) //
输出
数组方法 { for(int i=0;i
++) { for(int j=0;j
++) { System.out.print(a[i][j]+" "); //if(j==a[0].l
以下程序运行后的
输出
结果是:int fun(int n){static int s=1;s*=n;return s;main(){int i,s=0;for(i=1;i<=4;i
++
){s+=f}}}
文章目录1、题目2、知识点3、要做好的功课4、开始解题 1、题目 2、知识点 static的作用 函数调用 for 循环 3、要做好的功课 一般情况下 那么得到当这个函数执行完,s这个变量就销毁(不存在)了 但是有了 static 修饰后的变量,他就有了一个新作用,看下图 4、开始解题 调用了 fun()方法(也叫函数)。那我们就开始带
值
去计算 第一次循环,s=0,i=1 s+=fun(i) => s+=fun(1) 执行这条代码,进入fun函数 n=1,s=1 s*=n的意思相当
求一个3*3的整形矩阵对角线元素之和
#include #include int main(){ int a[3][3]; int i,j; int sum=0; for(i=0;i for(j=0;j scanf("%d",&a[i][j]); } for(i=0;i for(j=0;j if((i==j)||(i+j==2))
Java中的i=i+1和i+=1以及i
++
和
++
i详解
一、i=i+1和i+=1 (1)概念 i=i+1使用简单赋
值
运算,i+=1使用复合赋
值
运算。 简单赋
值
运算和复合赋
值
运算的最大差别就在于: 复合赋
值
运算符会自动地将运算结果转型为其左操作数的类型(即将不管i是什么数据类型,都会将右边int的1转换为i的类型)。 (2)实例 //方式一: byte i=7; i+=1; //方式二: byte i=7; i=i+1; 第一种写法编译
没
问题,而第二种写法却编译通不过。原因就在于,当使用复合赋
值
运算符进行操作时,即使右边算出的结果是int类型,系统也会将其
值
新手乐园
33,317
社区成员
41,771
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章