• for循环在编程中经常遇到,这里我们探究一下其中语句的执行顺序,以更加准确的确定

代码演示

  1. 结构说明

    for (a初始条件; b循环判断条件; c循环过程表达式) {d循环体
    }
    

    a.初始条件:对刚开始执行循环体做初始化;
    b.循环判断条件:判断是否满足循环执行的条件;
    c.循环过程表达式:每次执行循环体后,额外执行的语句,一般为i++, i--
    d.循环体:循环执行过程中的执行语句
    以下,我们都以 a b c d 来代替指定的表达式;

  2. 演示一:条件不满足时的执行情况
        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->b

    Created with Raphaël 2.2.0 开始 a.初始化 b.判断条件 结束
  3. 演示二:条件满足但仅仅执行一次的情况
      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->b

    Created with Raphaël 2.2.0 开始 a.初始化 b.判断条件:满足 d.循环体 c.循环过程表达式 b.判断条件:不满足 结束
  4. 终极演示:完整打印每一步运行
    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循环语句执行顺序相关推荐

  1. for循环中的三语句执行顺序

    for循环的执行语法是: for(<:初始化>;<条件表达式>;<增量>) 语句: 初始化总是一个赋值语句,它用来给循环控制变量赋初值:条件表达式是一个关系表达式, ...

  2. for表达式的语句执行顺序?

    for表达式的语句执行顺序? 例子1: 答案:A 1.for循环先执行表达式1,再执行表达式2,然后执行循环体,然后再来执行表达式3,若此时仍然满足表达式2,则继续执行循环体, 否则跳出for循环.m ...

  3. for循环的执行顺序

    for循环的执行顺序 for循环的执行顺序用如下表达式: for(expression1;expression2;expression3){ expression4; } 执行的顺序应该是: 1)第一 ...

  4. 开发这么久你真知道for循环内部执行顺序吗?

    for(System.out.print('a');num <= 3;System.out.print('c'),num++){System.out.print('b');} abcbcbc f ...

  5. mysql五补充部分:SQL逻辑查询语句执行顺序

    mysql五补充部分:SQL逻辑查询语句执行顺序一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SE ...

  6. 关于sql和MySQL的语句执行顺序

    sql和mysql执行顺序,发现内部机制是一样的.最大区别是在别名的引用上. 一.sql执行顺序  (1)from  (3) join  (2) on  (4) where  (5)group by( ...

  7. mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序

    (8)     DISTINCT (1)     FROM (3)      JOIN (2)     ON (4)     WHERE (5)     GROUP BY (6)     HAVING ...

  8. 25、Sql语句执行顺序

    sql语句定义和执行顺序 摘自<MySQL技术内幕:SQL编程> sql语句定义的顺序 (1) SELECT (2)DISTINCT<select_list> (3) FROM ...

  9. 【转】SQL 语句执行顺序

    From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...

最新文章

  1. css阴影3d效果,3D立体带阴影的CSS圆角效果
  2. 常用来进行钢结构节点输出的软件是什么_Revit中如何处理钢结构节点连接
  3. codeforces 1097 Hello 2019
  4. 令人惊讶的手机端实时 4K 风格迁移!谷歌又出牛文
  5. 100路监控需要使用核心交换机吗?
  6. 菜鸟的Hadoop快速入门
  7. 鱼群算法matlab代码,人工鱼群算法MATLAB实现
  8. raw socket 编程实例
  9. 动态交叉表(永洪bi)
  10. Linu修改系统时间
  11. js每日一题(10)
  12. 推荐免费下载430套大型企业管理源码 下载地址:http://www.hur.cn/tg/linkin.asp?linkid=205389 下载地址:[URL=http://www.hur.cn/t
  13. Good Bye 2020 E
  14. 微信做图小程序有哪些_有哪些微信小程序值得推荐?
  15. 2019 高校运维赛 writeup
  16. 中国法定节假日天数以及世界各国放假天数
  17. mysql中$和_在数据库中,$和#代表什么意思?
  18. 高铁只接触一根电网,具体是怎么运行的呢
  19. 【股票】java+js获取股票实时数据
  20. 华为设备基本ACL和高级ACL综合配置

热门文章

  1. android 天气预报
  2. [4G5G基础学习]:流程 - 4G LTE 接入网的随机接入流程
  3. MII,RMII,GMII接口详细介绍
  4. 怎么自制小程序?【自己制作小程序】
  5. 腾讯手游助手吃鸡一直服务器繁忙,腾讯手游助手吃鸡手游常见问题解决办法介绍...
  6. docker容器中配置文件修改错误,导致容器无法启动
  7. 计算机更改开机密码快捷方法,如何对电脑的开机密码进行快速更换
  8. Linux 磁盘配额与VDO技术
  9. ROUGE评价算法学习
  10. 运行中的线程如何停止?