社区
新手乐园
帖子详情
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。
请问这样理解错误出在哪里?
...全文
168
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
作业
写回复
配置赞助广告
用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是否成立?不成立 跳出
C#学编程从入门到实践【PPT课件】
C#学编程从入门到实践,免费下载,ppt格式,共521页。是一份不错的C#学习资料,内附有一些学习的教程,欢迎大家下载学习!
learn-python-the-hard-way中文版
learn-python-the-hard-way中文版,o基础学习python!||随手上传是种美德
如何
理解
for
循环
如何
理解
for
循环
深入
理解
for
循环
(执行顺序) for
循环
的表达式一般如下: for(表达式1;表达式2;表达式3){ 表达式4; } 执行的顺序为: 1)第一次
循环
,即初始化
循环
。 首先执行表达式1(一般为初始化语句),再执行表达式2(一般为条件判断语句),判断表达式1是否符合表达式2的条件,如果符合,则执行表达式4,否则,停止执行,最后执行表达式3. 2)下次的
循环
: 紧接第一步...
关于For
循环
嵌套的简单
理解
一:
循环
语句的嵌套 一个
循环
结构内可以含有另一个
循环
,称为
循环
嵌套,又称多重
循环
。常用的
循环
嵌套是二重
循环
,外层
循环
称为 外
循环
,内层
循环
称为内
循环
。 二:双重
循环
: 1.双重
循环
结构 for (
循环
变量初始化;终止条件表达式;
循环
变量的增量){ 语句或语句块; for(
循环
变量初始化;终止条件表达式;
循环
变量的增量){ 语句或语句块; } } 2.执行逻辑 1.外层判断
循环
条件,满足进入外...
理解
Python 的 for
循环
在本篇博客中,我们将讨论 Python 中 for
循环
的原理。 我们将从一组基本例子和它的语法开始,还将讨论与 for
循环
关联的 else 代码块的用处。 然后我们将介绍迭代对象、迭代器和迭代器协议,还会学习如何创建自己的迭代对象和迭代器。 之后,我们将讨论如何使用迭代对象和迭代器实现 for
循环
,以及利用 while
循环
通过迭代器协议实现 for
循环
逻辑。 最后,我们将反编译一...
新手乐园
33,321
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章