for循环语句头的执行顺序
来源:互联网 发布:wine源码安装 编辑:程序博客网 时间:2024/05/16 13:06
算是温习吧。问题比较基础,但是也比较重要。
for循环可以说在每个程序中都少不了的,语句头包括三个部分:初始化,判读条件,一个表达式。
但是这三个部分的执行顺序是什么,这是我们所关心的,也是本文所要讨论的。
下面先看一段简单的代码。
代码很简单,可是打印结果呢?
有的朋友可能会想当然的认为, 打印结果是1.
可是,真的是1吗? 复制到编译器上跑跑,奇迹般的发现,其实是2.
下面就分析下这简单代码。
第一步:初始化定义,x = 0, a = 0;
第二步:a小于1, x 的非为1,符合循环条件
第三步:x++后x自增为1.
第四步:进入循环体,a++,a自增为1.
第五步:执行循环语句头中的a++,a自增为2.
第六步:执行循环语句头的判读条件,a=2>1,故不满足,不执行循环语句。
第七步:打印a的值为2.
怎么样,现在豁然开朗了吧。(如果还是不懂...那就抱歉了。)
从这个例子,我们可以得出如下结论:
执行顺序是:初始化--判断--函数体——然后for循环的第3句--判断——函数体---for循环的第三句--判断……
下面解答几点疑惑:
1、第一次例如初始化i=0,是否还执行后面的i++或++i?
第一次先初始化,然后判断,i++就不执行了
2、第一次完了以后,初始化这句就不用了,是先执行i++还是限制性判断语句呢?
先执行i++
3、现在知道是先执行i++,再执行判断语句,i++不是后++吗,例如i为1,那i++后执行判断语句,i是几呢?
i是2.
4、好像i++和++i在for()里时结果都一样。
都一样,for语句头的执行顺序决定了这两个写法都一样,都是i++或这++i这两句执行完了再进行判断,此时(两种情况)i已经加1了。
分析了这么多,相信大家也都懂了。
留个经典的例子,让大家自己去分析吧。
打印结果:
0,10 9,9
如果不懂的,可以参照下面这个对上述例子逐句打印的例子,应该会有助于理解。
打印结果:
执行判断条件,i=0,j=10
0,10 执行for循环体中的最后一句,i=0,j=10
执行for()中的第三个语句,i=1,j=9
执行判断条件,i=1,j=9
执行for循环体中的最后一句,i=1,j=10
执行for()中的第三个语句,i=2,j=9
执行判断条件,i=2,j=9
执行for循环体中的最后一句,i=2,j=10
执行for()中的第三个语句,i=3,j=9
执行判断条件,i=3,j=9
执行for循环体中的最后一句,i=3,j=10
执行for()中的第三个语句,i=4,j=9
执行判断条件,i=4,j=9
执行for循环体中的最后一句,i=4,j=10
执行for()中的第三个语句,i=5,j=9
执行判断条件,i=5,j=9
执行for循环体中的最后一句,i=5,j=10
执行for()中的第三个语句,i=6,j=9
执行判断条件,i=6,j=9
执行for循环体中的最后一句,i=6,j=10
执行for()中的第三个语句,i=7,j=9
执行判断条件,i=7,j=9
执行for循环体中的最后一句,i=7,j=10
执行for()中的第三个语句,i=8,j=9
执行判断条件,i=8,j=9
执行for循环体中的最后一句,i=8,j=10
执行for()中的第三个语句,i=9,j=9
执行判断条件,i=9,j=9
9,9
- for循环语句头的执行顺序
- for循环语句头的执行顺序
- for循环语句头的执行顺序
- for循环语句头的执行顺序
- for循环语句头的执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- 关于for循环中三个语句的执行顺序
- for循环语句的头部执行顺序--汇编语言分析
- C语言for循环语句的执行顺序
- for循环中的三语句执行顺序
- for循环的执行顺序
- for循环的执行顺序
- for循环的执行顺序
- 如何安装博通 BCM43142 网卡驱动
- C++中析构函数为什么有时候写成虚拟的
- ios浅谈内存管理
- Java 数据结构与算法------红黑树
- 使用函数实现两个数的交换。
- for循环语句头的执行顺序
- 2017.10.13 第四天总结
- CVPR2017-最新目标检测相关
- HDU
- 贪心算法及几个经典案例
- Python time模块详解(时间戳↔元组形式↔格式化形式三者转化)
- Jquery学习小总结
- js实现找出字符串中的最长回文串
- 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A