关于for循环中三个语句的执行顺序
来源:互联网 发布:java 毫秒 编辑:程序博客网 时间:2024/04/30 01:17
今天在书上看例子的时候,突然觉得对于for循环三个表达式的执行时间的理解还是很模糊,只知道在这里++i和i++的效果是一样的,而且前缀模式的效率更高,但是对于这一条表达式的是在本次循环开始前执行还是循环完毕之后执行还是不确定,于是决定就直接用简单的小程序分析一下。
#include <iostream>using namespace std;void main(){int i,j;for(i=0,j=0;i<3;++i,cout<<"i= "<<i<<endl,j++,cout<<"j= "<<j<<endl){cout<<"my i= "<<i<<endl;cout<<"my j= "<<j<<endl<<endl;}system("pause");}
非常简单的语句,输出
my i=0 my j=0
i=1 j=1 my i=1 my j=1
i=2 j=2 my i=2 my j=2
i=3 j=3
这样,可以清楚地发现,for循环中三个表达式的顺序
首先肯定是赋初值和判断,而变量更新,则是在执行完本次循环之后再进行的,从输出的第一行中可以分析得到,没有输出i=0 j=0,同时也发现了前缀与后缀在for循环中是相同的作用(效率的差别)
继续往后想,如果循环中嵌套了条件分支,其中包含break语句又会是一个什么情况呢,继续写简单的程序探究。
#include <iostream>using namespace std;void main(){int i;for(i=1;i<4;++i,cout<<"i= "<<i<<endl){if(i%3==0)
break;cout<<"my i= "<<i<<endl<<endl;}
cout<<"final i= "<<i<<endl;
system("pause");}
输出
my i=1
i=2
my i=2
i=3
final i=3
可以看出,当执行break语句跳出循环的时候,程序将会直接跳过循环更新语句,i的终值也不会更新。
这样,我们可以讲for循环的“循环”理解的更加透彻,for循环中的三个表达式
初值表达式,可以理解为整个循环体的开始,相当于预处理的部分,
条件判断表达式呢,相当于每一轮循环的标题,标出我这轮循环是否有效,
最后的条件更新表达式,则是连接两轮循环之间的桥梁,
下面是大致给的一个示意图
以上也是在初始学习c++过程中理解问题的一个过程,简单的问题,简单粗略的分析。
希望有前辈能够之处其中的错误,给出一些学习的参考意见,谢谢了,继续奋斗了
- 关于for循环中三个语句的执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- for循环语句头的执行顺序
- for循环的语句执行顺序
- for循环的语句执行顺序
- for循环语句头的执行顺序
- for循环语句头的执行顺序
- for循环语句头的执行顺序
- for循环的语句执行顺序
- for循环语句头的执行顺序
- Java中for循环的执行顺序
- Java中for循环的执行顺序
- 关于for循环执行顺序
- C 中for 循环语句执行顺序之我是汇编
- for循环语句的头部执行顺序--汇编语言分析
- C语言for循环语句的执行顺序
- oracle体系结构图
- 关于数据挖掘的几本书(转)
- 关于视频图像dither
- 从.Net到Java
- 全面接触PDF:最好用的PDF软件汇总
- 关于for循环中三个语句的执行顺序
- acm 做过的题目分类(不定期更新)
- tar rar 压缩方法
- 《黑马程序员》java笔记->【02】java的内存划分
- 《黑马程序员》java笔记->【02】static静态修饰符
- 《黑马程序员》java笔记->【02】对public static void main(String[] args)的解释
- oracle大数据量查询--分区表入门
- UML学习笔记---了解UML,UML相关知识,相关概念
- 《黑马程序员》java笔记->【02】关于Static静态方法的一些注意事项