社区
新手乐园
帖子详情
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。
请问这样理解错误出在哪里?
...全文
172
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课件】
1. **基本语法**:包括变量声明、数据类型、运算符、流程控制(如if语句、for
循环
、while
循环
)等。 2. **类与对象**:C#是面向对象的语言,
理解
类的定义、对象的创建和销毁、属性与方法、封装、继承、多态等概念是...
纯C版的微信打飞机游戏
3. **
循环
与条件语句**:游戏的主
循环
是通过`while`或`for`等
循环
实现的,控制游戏的运行流程。条件语句如`if...else`用于处理游戏中的各种情况,如碰撞检测、游戏结束条件等。 4. **函数设计**:游戏中的每个功能...
learn-python-the-hard-way中文版
2. **控制流程**:学习条件语句(if-else)、
循环
(for、while)以及如何使用函数来组织代码。 3. **函数**:
理解
函数的定义、参数传递和返回值,以及如何使用内置函数和自定义函数。 4. **文件操作**:学会读取和...
如何
理解
for
循环
如何
理解
for
循环
深入
理解
for
循环
(执行顺序) for
循环
的表达式一般如下: for(表达式1;表达式2;表达式3){ 表达式4; } 执行的顺序为: 1)第一次
循环
,即初始化
循环
。 首先执行表达式1(一般为初始化语句),再...
关于For
循环
嵌套的简单
理解
for (
循环
变量初始化;终止条件表达式;
循环
变量的增量){ 语句或语句块; for(
循环
变量初始化;终止条件表达式;
循环
变量的增量){ 语句或语句块; } } 2.执行逻辑 1.外层判断
循环
条件,满足进入外...
新手乐园
33,320
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章