社区
新手乐园
帖子详情
for循环理解问题
zhuywei123
2011-04-30 04:13:33
main()
{
int i = 0;
for (i = 0; i < 2; i++)
{
printf("%d\n",i);
}
}
这个for循环的执行过程应该怎么理解呢?
1.i = 0;
2.判断i<2;
3.打印i;
4.执行 i++;
问题是执行此处的i++,应该是先取i(i 依然为0),i再++(i为1);执行完后,i的取值依然为0啊,反映在输出上应该是0,0,1;而不是0,1。
请问这样理解错误出在哪里?
...全文
161
19
打赏
收藏
for循环理解问题
main() { int i = 0; for (i = 0; i < 2; i++) { printf("%d\n",i); } } 这个for循环的执行过程应该怎么理解呢? 1.i = 0; 2.判断i<2; 3.打印i; 4.执行 i++;问题是执行此处的i++,应该是先取i(i 依然为0),i再++(i为1);执行完后,i的取值依然为0啊,反映在输出上应该是0,0,1;而不是0,1。 请问这样理解错误出在哪里?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
waslgxl
2011-05-05
打赏
举报
回复
转换成WHILE语句就容易理解了
先X=0;然后再回来自加
forarrow
2011-05-05
打赏
举报
回复
楼主的误区在于:i++什么时候自加
1. i=0;
i++;
cout<<i; //此时输出为1
2. i=0;
++i;
cout<<i; //此时输出也为1
3. i = 0;
cout<<i++; //此时输出为0
4. i = 0;
cout<<++i; //此时输出为1
在i++或者++i执行完成后,i都是加了1的,只有在i++或者++i在执行的时候,他们才有区别,前者先计算再加1,后者先加1再计算。
ffjj56
2011-05-01
打赏
举报
回复
LZ for的第三个语句等于是在循环内,也就是"}"前
执行完i++本次循环结束;结束的时候i已经是1了
没调试
hnrainll
2011-05-01
打赏
举报
回复
for (i = 0; i < 2; i++)
{
printf("%d\n",i);
}
LZ这里的不管是i++还是++i,结果都是一样的.
这里要理解一个表达式的问题.
int i = 0;
int cp;
cp = i++; //语句一
i++;
cp = i;//语句二
好好的体会这两个语句
伊上殇
2011-05-01
打赏
举报
回复
经测试,输出结果为0,1。楼主不要被开始的的那个int i=0给误导,它在执行完for循环式发生改变。
xmu_才盛
2011-05-01
打赏
举报
回复
for (i = 0; i < 2; i++)
{
printf("%d\n",i);
}
等价于
int i = 0;
while(i < 2)
{
printf("%d", i);
i++;
}
for( 语句1; 语句2;语句3)
所以你无论是 i++ 还是 ++i, 在 语句3中 没有区别。。。
所以揣摩一下7楼得话。。。lz
疯疯癫癫
2011-05-01
打赏
举报
回复
9楼正解!支持
jernymy
2011-05-01
打赏
举报
回复
i++; // 先执行代码,后i=i+1
++i; // 先i=i+1,然后在执行代码
jianhuiqaz
2011-05-01
打赏
举报
回复
http://topic.csdn.net/u/20090219/22/e2df8b74-5fe4-4d1e-bace-03f1661b7618.html
楼主,看下这个讨论吧,可能对你有所帮助
wangxueren
2011-05-01
打赏
举报
回复
先执行i=i+1,再执行i<2
SunflowerLife
2011-05-01
打赏
举报
回复
i=0;
i<2? true
printf("%d\n",i); 0
i++; i=1
i<2? true
printf("%d\n",i); 1
i++; 2
i<2? false
退出循环;
SunflowerLife
2011-05-01
打赏
举报
回复
问题是执行此处的i++,应该是先取i(i 依然为0),i再++(i为1);执行完后,i的取值依然为0啊,反映在输出上应该是0,0,1;而不是0,1。
执行打印语句后i的值是0,但执行完毕后继续执行i++,此时i的值就为1了,之后进入下一轮循环。
还有一个很严重的问题,LZ的结帖率好低诶~~
阔人
2011-04-30
打赏
举报
回复
对于for循环,执行i++后;在拿i的值去进行条件判断,此时i的值已经为1了。i++与++i最大的区别是在赋值的时候,所以不必过分考虑此时的情况。
zhuywei123
2011-04-30
打赏
举报
回复
感觉不是很具体呢
Woodz
2011-04-30
打赏
举报
回复
明了的回答[Quote=引用 3 楼 qq376472696qq 的回复:]
i++相当于
int f(int &i)
{int temp=i;i=i+1;return temp;}
[/Quote]
qq376472696qq
2011-04-30
打赏
举报
回复
i++ 执行完i加1,只不过返回值为未加前的
qq376472696qq
2011-04-30
打赏
举报
回复
i++相当于
int f(int &i)
{int temp=i;i=i+1;return temp;}
quwei197874
2011-04-30
打赏
举报
回复
"应该是先取i(i 依然为0),i再++(i为1)"---是执行完这个再printf(),所以是0,1
無_1024
2011-04-30
打赏
举报
回复
首先初始化i=0;在比较i<2是否成立? 比较i<2是否成立?成立i++
i=1;比较i<2是否成立?成立I++
i=2;比较i<2是否成立?不成立 跳出
Web前端开发第4季:JavaScript基础入门
for
循环
,
循环
嵌套 ) ◆ 集合(Array基础常见操作、案例演示) ◆ set集合、map集合(集合的遍历、集合常用的方法) ◆ 课后习题 在本季课程的讲解部分结合了大量的案例演示,通过案例演示可以清楚的加深对...
双重for
循环
(嵌套for
循环
)
什么是双重
循环
? 双重
循环
:我们从字面上
理解
它,就是有两个
循环
套在一起 详细解释 双重for
循环
就是在一个for
循环
里在嵌套另一个for
循环
,即两个
循环
嵌套,还有多重
循环
嵌套的情况,但用的比较少,一般常用的是两个
循环
嵌套,很少使用多重
循环
,因为for
循环
多了会导致代码执行的效率低,而且容易死机,多
循环
中的总
循环
次数是相乘的,嵌套几次后几何级数增长,因此通常情况下在
循环
多次嵌套时,我们是不推荐使用使用的。 说的再简单点就是,for
循环
的嵌套,跟我们之前的if嵌套一样 for(
循环
变量;
循环
条
如何
理解
for
循环
如何
理解
for
循环
深入
理解
for
循环
(执行顺序) for
循环
的表达式一般如下: for(表达式1;表达式2;表达式3){ 表达式4; } 执行的顺序为: 1)第一次
循环
,即初始化
循环
。 首先执行表达式1(一般为初始化语句),再执行表达式2(一般为条件判断语句),判断表达式1是否符合表达式2的条件,如果符合,则执行表达式4,否则,停止执行,最后执行表达式3. 2)下次的
循环
: 紧接第一步...
理解
Python 的 for
循环
在本篇博客中,我们将讨论 Python 中 for
循环
的原理。 我们将从一组基本例子和它的语法开始,还将讨论与 for
循环
关联的 else 代码块的用处。 然后我们将介绍迭代对象、迭代器和迭代器协议,还会学习如何创建自己的迭代对象和迭代器。 之后,我们将讨论如何使用迭代对象和迭代器实现 for
循环
,以及利用 while
循环
通过迭代器协议实现 for
循环
逻辑。 最后,我们将反编译一...
关于For
循环
嵌套的简单
理解
一:
循环
语句的嵌套 一个
循环
结构内可以含有另一个
循环
,称为
循环
嵌套,又称多重
循环
。常用的
循环
嵌套是二重
循环
,外层
循环
称为 外
循环
,内层
循环
称为内
循环
。 二:双重
循环
: 1.双重
循环
结构 for (
循环
变量初始化;终止条件表达式;
循环
变量的增量){ 语句或语句块; for(
循环
变量初始化;终止条件表达式;
循环
变量的增量){ 语句或语句块; } } 2.执行逻辑 1.外层判断
循环
条件,满足进入外...
新手乐园
33,311
社区成员
41,785
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章