for循环语句执行顺序
- for循环在编程中经常遇到,这里我们探究一下其中语句的执行顺序,以更加准确的确定
代码演示
- 结构说明
for (a初始条件; b循环判断条件; c循环过程表达式) {d循环体 }
a.初始条件:对刚开始执行循环体做初始化;
b.循环判断条件:判断是否满足循环执行的条件;
c.循环过程表达式:每次执行循环体后,额外执行的语句,一般为i++
,i--
d.循环体:循环执行过程中的执行语句
以下,我们都以 a b c d 来代替指定的表达式; - 演示一:条件不满足时的执行情况
int i = 0;System.out.println("for start==="+i);for (i = 1; i < 1; System.out.println("other: "+i)) {System.out.println("inner circle: "+i);i++;}System.out.println("inner end===="+i);
上结果:
for start===0 inner end====1
所以当条件不满足时:
执行顺序是:a->bCreated with Raphaël 2.2.0 开始 a.初始化 b.判断条件 结束 - 演示二:条件满足但仅仅执行一次的情况
int i = 0;System.out.println("for start==="+i);for (i = 1; i == 1; System.out.println("other: "+i)) {System.out.println("inner circle: "+i);i++;}System.out.println("inner end===="+i);
上结果:
for start===0 inner circle: 1 other: 2 inner end====2
所以当条件仅仅满足执行一次时:
执行顺序是:a->b->d->c->bCreated with Raphaël 2.2.0 开始 a.初始化 b.判断条件:满足 d.循环体 c.循环过程表达式 b.判断条件:不满足 结束 - 终极演示:完整打印每一步运行
public static void main(String[] arg0){int i = 0;System.out.println("start====");for (System.out.println("a初始条件"); doChoice(i); System.out.println("c循环过程表达式")) {System.out.println("d循环体");i++;}System.out.println("end===="); }private static boolean doChoice(int i) {System.out.println("b循环判断条件");if(i > 3){return false;}return true; }
上结果:
start====a初始条件b循环判断条件d循环体c循环过程表达式b循环判断条件d循环体c循环过程表达式b循环判断条件d循环体c循环过程表达式b循环判断条件d循环体c循环过程表达式b循环判断条件end====
所以当条件满足多次执行时:
执行顺序是:a->b->d->c->(b->d->c)…->b
结合前面的分析,我们得出下面的流程图:Created with Raphaël 2.2.0 开始 a.初始化 b.判断条件 d.循环体 c.循环过程表达式 结束 yes no结论
- 初始化条件,无论如何都会执行一次;
- 判断条件,每次循环体执行前均会检查一次,如果满足则进入循环体,不满足则结束循环;
- 其他处理逻辑c,在每次循环体执行结束,均会执行一次,可以认为是循环体的最末的执行语句;
- 开发人员需要注意 *a.初始化、c.循环过程表达式 的执行时机,以免莫名其妙的问题出现
- 一般c.循环过程表达式,为
i++
,i--
等递增递减语句; - 如果b.判断条件留空,无内容,则默认为true,默认一定会进入循环体,除非循环体内部
break
;
for循环语句执行顺序相关推荐
- for循环中的三语句执行顺序
for循环的执行语法是: for(<:初始化>;<条件表达式>;<增量>) 语句: 初始化总是一个赋值语句,它用来给循环控制变量赋初值:条件表达式是一个关系表达式, ...
- for表达式的语句执行顺序?
for表达式的语句执行顺序? 例子1: 答案:A 1.for循环先执行表达式1,再执行表达式2,然后执行循环体,然后再来执行表达式3,若此时仍然满足表达式2,则继续执行循环体, 否则跳出for循环.m ...
- for循环的执行顺序
for循环的执行顺序 for循环的执行顺序用如下表达式: for(expression1;expression2;expression3){ expression4; } 执行的顺序应该是: 1)第一 ...
- 开发这么久你真知道for循环内部执行顺序吗?
for(System.out.print('a');num <= 3;System.out.print('c'),num++){System.out.print('b');} abcbcbc f ...
- mysql五补充部分:SQL逻辑查询语句执行顺序
mysql五补充部分:SQL逻辑查询语句执行顺序一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SE ...
- 关于sql和MySQL的语句执行顺序
sql和mysql执行顺序,发现内部机制是一样的.最大区别是在别名的引用上. 一.sql执行顺序 (1)from (3) join (2) on (4) where (5)group by( ...
- mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序
(8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING ...
- 25、Sql语句执行顺序
sql语句定义和执行顺序 摘自<MySQL技术内幕:SQL编程> sql语句定义的顺序 (1) SELECT (2)DISTINCT<select_list> (3) FROM ...
- 【转】SQL 语句执行顺序
From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...
最新文章
- css阴影3d效果,3D立体带阴影的CSS圆角效果
- 常用来进行钢结构节点输出的软件是什么_Revit中如何处理钢结构节点连接
- codeforces 1097 Hello 2019
- 令人惊讶的手机端实时 4K 风格迁移!谷歌又出牛文
- 100路监控需要使用核心交换机吗?
- 菜鸟的Hadoop快速入门
- 鱼群算法matlab代码,人工鱼群算法MATLAB实现
- raw socket 编程实例
- 动态交叉表(永洪bi)
- Linu修改系统时间
- js每日一题(10)
- 推荐免费下载430套大型企业管理源码 下载地址:http://www.hur.cn/tg/linkin.asp?linkid=205389 下载地址:[URL=http://www.hur.cn/t
- Good Bye 2020 E
- 微信做图小程序有哪些_有哪些微信小程序值得推荐?
- 2019 高校运维赛 writeup
- 中国法定节假日天数以及世界各国放假天数
- mysql中$和_在数据库中,$和#代表什么意思?
- 高铁只接触一根电网,具体是怎么运行的呢
- 【股票】java+js获取股票实时数据
- 华为设备基本ACL和高级ACL综合配置